home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 41 / Amiga Format CD41 (1999-06)(Future Publishing)(GB)[!][issue 1999-07].iso / -seriously_amiga- / misc / vinced / include / autodocs / vnc.doc < prev   
Text File  |  1999-04-19  |  116KB  |  3,659 lines

  1. TABLE OF CONTENTS
  2.  
  3. vnc.library/--Background--
  4. vnc.library/VNCInputHandler
  5. vnc.library/VNCImInputHandler
  6. vnc.library/VNCRawKeyConvert
  7. vnc.library/SwitchTABExpansion
  8. vnc.library/HandleTabExpansion
  9. vnc.library/AbortTabExpansion
  10. vnc.library/LockWindow
  11. vnc.library/UnlockWindow
  12. vnc.library/FindCNWindow
  13. vnc.library/UnFindCNWindow
  14. vnc.library/GetVNCPrefs
  15. vnc.library/GetVNCDefaultPrefs
  16. vnc.library/LoadPrefsFrom
  17. vnc.library/SavePrefs
  18. vnc.library/SavePrefsTo
  19. vnc.library/UsePrefs
  20. vnc.library/SetWindowPrefs
  21. vnc.library/GetWindowPrefs
  22. vnc.library/AllocPrefsBuffer
  23. vnc.library/FreePrefsBuffer
  24. vnc.library/List2Prefs
  25. vnc.library/Prefs2List
  26. vnc.library/FreeMacroList
  27. vnc.library/SendRequestPattern
  28. vnc.library/SendWindowOpens
  29. vnc.library/SendWindowCloses
  30. vnc.library/SendWindowQuit
  31. vnc.library/VNCRequestFile
  32. vnc.library/CtrlZSuspend
  33. vnc.library/VNCUniqueID
  34. vnc.library/GetNodeN
  35. vnc.library/AllocEdMem
  36. vnc.library/FreeEdMem
  37. vnc.library/AllocLine
  38. vnc.library/FreeLine
  39. vnc.library/NotifyChOwner
  40. vnc.library/NotifyClearScreen
  41. vnc.library/VNCAToI
  42. vnc.library/VNCHToI
  43. vnc.library/VNCStrToL
  44. vnc.library/VNCIToA
  45. vnc.library/VNCSPrintf
  46. vnc.library/VNCStrCmp
  47. vnc.library/VNCStrICmp
  48. vnc.library/VNCToUpper
  49. vnc.library/ConvertWindowTitle
  50. vnc.library/FindCloseMacro
  51. vnc.library/PrintSuspend
  52. vnc.library/QueueOwnerLine
  53. vnc.library/PutLineData
  54. vnc.library/SendAsyncPacket
  55. vnc.library/AllocAsyncPacket
  56. vnc.library/VNCDoPacket
  57. vnc.library/Foreground
  58. vnc.library/Background
  59. vnc.library/ConvertString
  60. vnc.library/PoolCreateExtIO
  61. vnc.library/PoolCreateStdIO
  62. vnc.library/PoolDeleteExtIO
  63. vnc.library/PoolDeleteStdIO
  64. vnc.library/PoolCreatePort
  65. vnc.library/PoolDeletePort
  66. vnc.library/VNCFOpen
  67. vnc.library/VNCFClose
  68. vnc.library/VNCFRead
  69. vnc.library/VNCFWrite
  70. vnc.library/VNCOneRequester
  71. vnc.library/VNCTwoRequester
  72. vnc.library/GetHistory
  73. vnc.library/PutHistory
  74. vnc.library/GetScreen
  75. vnc.library/PutScreen
  76. vnc.library/NameOfFunction
  77. vnc.library/NameOfKey
  78. vnc.library/InstallGlobalHooks
  79. vnc.library/--Background--                        vnc.library/--Background--
  80.  
  81.     PURPOSE:
  82.         The vnc.library is the main library of the ViNCEd console handler.
  83.         Its purpose is to manage the preferences of the handler, as well
  84.         as provide interface functions to commonly used features as saving
  85.         or loading the review buffer or the command history. It contains
  86.         also functions to identify an I/O stream as ViNCEd stream or to
  87.         find the intuition window related to such a stream. It provides
  88.         also functions to give back this pointer to allow iconification
  89.         or closing of that window.
  90.  
  91.         Various vectors in this library serve more as "patchable hook"
  92.         then "callable functions", i.e. they can be patched to replace
  93.         various ViNCEd features as the TAB expansion or the keyboard
  94.         parser.
  95.  
  96.         It contains furthermore miscellaneous functions used by the SetVNC
  97.         preferences editor which are open to other applications as well.
  98.  
  99.         Last but not least, it contains job control functions which allow
  100.         user applications to put their programs to foreground or background.
  101.  
  102. vnc.library/VNCInputHandler                        vnc.library/VNCInputHandler
  103.  
  104.     NAME
  105.         VNCInputHandler - collect input events, send them to windows
  106.  
  107.     SYNOPSIS
  108.         ievent = VNCInputHandler ( ievent , vncbase );
  109.         d0                            a0        a1
  110.  
  111.         struct InputEvent * VNCInputHandler ( struct InputEvent *, 
  112.                                               struct VNCLibrary *);
  113.  
  114.     FUNCTION
  115.         Collects a linked list of input events, and sends the information
  116.         to the open ViNCEd windows.
  117.  
  118.     INPUTS
  119.         ievent    -    a linked list of InputEvents.
  120.         vncbase -    a pointer to the vnc.library, must be passed in a1
  121.                     for this function.
  122.  
  123.     RETURNS
  124.         the input event passed in.
  125.  
  126.     NOTES
  127.         This function is called as a part of the ViNCEd input handler.
  128.         Input events should be usually made available thru the input device
  129.         and not by calling this function.
  130.  
  131.     BUGS
  132.  
  133.     SEE ALSO
  134.         input.device, VNCImInputHandler()
  135. vnc.library/VNCImInputHandler                    vnc.library/VNCImInputHandler
  136.  
  137.     NAME
  138.         VNCImInputHandler - collect input events, send them to windows
  139.  
  140.     SYNOPSIS
  141.         ievent = VNCImInputHandler ( ievent , vncbase );
  142.         d0                            a0        a1
  143.  
  144.         struct InputEvent * VNCImInputHandler ( struct InputEvent *, 
  145.                                                 struct VNCLibrary *);
  146.  
  147.     FUNCTION
  148.         Collects a linked list of input events, and sends the information
  149.         to the open ViNCEd windows.
  150.  
  151.     INPUTS
  152.         ievent    -    a linked list of InputEvents.
  153.         vncbase -    a pointer to the vnc.library, must be passed in a1
  154.                     for this function.
  155.  
  156.     RETURNS
  157.         the input event passed in.
  158.  
  159.     NOTES
  160.         This function is called as a part of the ViNCEd input handler.
  161.         The only difference between this function and VNCInputHandler()
  162.         is that this is the "immediate input handler" which hooks into
  163.         the input handler chain in front of the intuition input handler,
  164.         whereas VNCInputHandler() hooks in behind intuition. The reason
  165.         for providing two input handler functions is to have the timer
  166.         events available which are usually swallowed by the intuition
  167.         input handler, but needed by ViNCEd.
  168.  
  169.         Input events should be usually made available thru the input device
  170.         and not by calling this function.
  171.  
  172.     BUGS
  173.  
  174.     SEE ALSO
  175.         input.device, VNCInputHandler()
  176. vnc.library/VNCRawKeyConvert                    vnc.library/VNCRawKeyConvert
  177.  
  178.     NAME
  179.         VNCRawKeyConvert - convert raw keycodes to CSI/ESC/ASCII sequences
  180.  
  181.     SYNOPSIS
  182.         converted = VNCRawKeyConvert ( kmrequest )
  183.         d0                                a0
  184.  
  185.         LONG        VNCRawKeyConvert ( struct KeymapRequest * )
  186.  
  187.     FUNCTION
  188.         Convert an input event, pointed to by the KeymapRequest structure
  189.         into a sequence of CSI codes or ASCII codes, pass back the number
  190.         of characters in the buffer, or -1 if the buffer overrun.
  191.  
  192.         This function will make use of the ViNCEd extended CSI sequences
  193.         if the flags in the KeymapRequest structure say so.
  194.  
  195.     INPUTS
  196.         kmrequest - a pointer to the following structure:
  197.  
  198.         struct KeymapRequest {
  199.             struct InputEvent    *kmr_Event;
  200.             struct Keymap        *kmr_Keymap;
  201.             struct ExtMap        *kmr_ExtMap;
  202.             ULONG                 kmr_Flags;
  203.             char                *kmr_Buffer;
  204.             ULONG                 kmr_Length;
  205.             ULONG                 kmr_Qualifier;
  206.             ULONG                 kmr_ExtFlags;
  207.         };
  208.  
  209.         kmr_Event:    the input event to process. This is only allowed to be
  210.                     a single input event, not a chain of input events.
  211.                     It MUST be of type IECLASS_RAWKEY.
  212.  
  213.         kmr_Keymap:    a pointer to a standard console.device keymap to use
  214.                     for conversion of non-ViNCEd specific keys.
  215.  
  216.         kmr_ExtMap: a pointer to the ViNCEd extension of a keymap, found
  217.                     in the preferences, for example.
  218.  
  219.         kmr_Flags:    a set of flags, defined as follows:
  220.  
  221.         KMF_EXTENDED:    Reply extended ViNCEd CSI sequences as well.
  222.         KMF_NUMLOCK:    NumLock is active. You've to keep trace of this
  223.                         flag yourself.
  224.  
  225.         kmr_Buffer:        the output buffer to place the characters in.
  226.         kmr_Length:        the size of this buffer.
  227.  
  228.         kmr_Qualifier:    initialize to zero.
  229.         kmr_ExtFlags:    initialize to zero.
  230.  
  231.     RETURNS
  232.         the number of characters put into the output buffer, or -1 if
  233.         the buffer overrun.
  234.  
  235.         Furthermore, the following fields of the structure are set for
  236.         you:
  237.  
  238.         kmr_Qualifier:    the keyboard qualifier set in the input event.
  239.         kmr_ExtFlags:    the following flags can be made use of:
  240.                         (meaning: there are more you should not depend on)
  241.  
  242.         VPKF_NOSCROLL    this key shall not snap back the window contents
  243.         VPKF_NOTABXQ    this key shall not terminate a TAB expansion
  244.         VPKF_ASCII        this key was found by an ASCII match and not
  245.                         a raw key code match
  246.         VPKF_XTENDED    this is a ViNCED extended function
  247.         VPKF_IMMEDIATE    this function must evaluate immedate, even if
  248.                         the type ahead buffer is active.
  249.     
  250.     NOTES
  251.     
  252.     BUGS
  253.  
  254.     SEE ALSO
  255.         devices/keymap, vnc/prefs.h, the ViNCEd guide
  256. vnc.library/SwitchTABExpansion                    vnc.library/SwitchTABExpansion
  257.  
  258.     NAME
  259.         SwitchTABExpansion    -    toggle the TAB expansion on/off
  260.  
  261.     SYNOPSIS
  262.         success = SwitchTABExpansion ( cn, onoff )
  263.         d0                               a5    d0
  264.  
  265.         LONG SwitchTABExpansion ( struct ViNCWindow *, LONG )
  266.  
  267.         success    = SwitchTABExpansion_CN ( onoff )
  268.         d0                                 d0
  269.  
  270.         LONG SwitchTABExpansion_CN ( LONG )
  271.  
  272.     FUNCTION
  273.         Toggle the TAB expansion on or off.
  274.  
  275.     INPUTS
  276.         cn -    a pointer to the ViNCWindow structure describing the ViNCEd
  277.                 window. This structure MUST HAVE BE LOCKED with 
  278.                 LockCNWindow() before if you call this. See NOTES below.
  279.  
  280.         onoff -    A boolean flag indicating whether expansion should be 
  281.                 allowed or not.
  282.  
  283.     RESULTS
  284.         a boolean success/failure indicator.
  285.  
  286.     NOTES
  287.         There are two forms of this function available. The first form
  288.         is the "natural" library form, the second is available as a 
  289.         stub routine in the link libraries in the archive. It automatically
  290.         provides the window pointer which must have been set by the link
  291.         library function SetCNWindow() before.
  292.  
  293.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  294.         to be modified with LockWindow() first.
  295.  
  296.         You usually DO NOT want to call this function. It is provided to
  297.         allow an alternative TAB expansion to hook in here. It is, however,
  298.         called by the library itself in case the TAB expansion must be
  299.         disabled or enabled.
  300.  
  301.     BUGS
  302.  
  303.     SEE ALSO
  304.         LockWindow(), vnc/window.h
  305. vnc.library/HandleTabExpansion                    vnc.library/HandleTabExpansion
  306.         
  307.     NAME
  308.         HandleTabExpansion - launch a TAB expansion
  309.  
  310.     SYNOPSIS
  311.         success = HandleTabExpansion ( cn, len, pos, dir, buf, owner)
  312.         d0                               a5    d0    d1     d4      a0    a1
  313.  
  314.         LONG HandleTabExpansion ( struct ViNCWindow *, ULONG, ULONG,
  315.                                   ULONG, ULONG, char *, struct ViOwner *)
  316.  
  317.  
  318.         success = HandleTabExpansion_CN ( len, pos, dir, buf, owner)
  319.  
  320.         LONG HandleTabExpansion_CN ( ULONG, ULONG, ULONG, char *, 
  321.                                      struct ViOwner *)
  322.  
  323.     FUNCTION
  324.         Run a TAB expansion asynchronously in background on the provided
  325.         information. Reinsert the expansion into the VINCEd window
  326.         specified by "cn".
  327.  
  328.     INPUTS
  329.         cn    -    a pointer to the ViNCEd main structure to handle. MUST
  330.                 be LOCKED with LockWindow().
  331.         len -    the length of the line with user data to be expanded.
  332.         pos    -    the position of the cursor within this buffer. Zero is
  333.                 the leftmost position. It is allowed in the range of
  334.                 0..len. 
  335.         dir    -    direction/type information of which TAB function to use.
  336.                 0,1:    first Tab function, forwards resp. backwards
  337.                 2,3:    second Tab function,
  338.                 ...
  339.                 10,11:    sixth Tab function. More might be defined in the
  340.                         future.
  341.         buf -    buffer with the data to be expanded. This is the FULL line
  342.                 of user inputs only. All printed characters have already
  343.                 been filtered out. "pos" is the cursor position relative 
  344.                 to the FILTERED data.
  345.         owner -    pointer to the ViNCEd owner structure where the current
  346.                 directory to look at should be extracted from. ViNCEd
  347.                 *tries* to make sure that this owner is stable and does
  348.                 not go away as long as the expansion is running.
  349.  
  350.     RESULTS
  351.         a boolean success indicator whether the tab expansion could be
  352.         launched successfully. It DOES NOT indicate whether the expansion
  353.         worked or not.
  354.  
  355.     NOTES
  356.         There are two forms of this function available. The first form
  357.         is the "natural" library form, the second is available as a 
  358.         stub routine in the link libraries in the archive. It automatically
  359.         provides the window pointer which must have been set by the link
  360.         library function SetCNWindow() before.
  361.  
  362.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  363.         to be modified with LockWindow() first.
  364.  
  365.         You usually DO NOT want to call this function. It is provided to
  366.         allow an alternative TAB expansion to hook in here. It is, however,
  367.         called by the library itself to launch the TAB expansion.
  368.         
  369.         Note again that this call is asynchronous.
  370.  
  371.     SEE ALSO
  372.         LockWindow(), vnc/owner.h, vnc/window.h
  373. vnc.library/AbortTabExpansion                    vnc.library/AbortTabExpansion
  374.  
  375.     NAME
  376.         AbortTabExpansion -    try to cancel a running expansion
  377.  
  378.     SYNOPSIS
  379.         success = AbortTabExpansion ( cn )
  380.         d0                              a5
  381.  
  382.         LONG AbortTabExpansion ( struct ViNCWindow * )
  383.  
  384.  
  385.         success = AbortTabExpansion_CN ( )
  386.         d0
  387.  
  388.         LONG AbortTabExpansion_CN ( VOID )
  389.  
  390.  
  391.     FUNCTION
  392.         Tries to cancel an already running Tab expansion. However, this
  393.         routine may fail to do so in case the user opened a TAB expansion
  394.         requester which cannot aborted due to system limitations. It 
  395.         will return -1 even in this case. 
  396.  
  397.     INPUTS
  398.         cn -     a pointer to the ViNCEd window in which the TAB expansion is
  399.                  taking place. MUST BE LOCKED before calling this routine with
  400.                 LockWindow().
  401.  
  402.     RESULTS
  403.         -1 if the abort signal was send successfully. This DOES NOT mean
  404.         that the expansion was aborted successfully, however.
  405.  
  406.         0 on failure.
  407.  
  408.         1 if the tab expansion was disabled. No signal is send in this case.
  409.  
  410.  
  411.     NOTES
  412.         There are two forms of this function available. The first form
  413.         is the "natural" library form, the second is available as a 
  414.         stub routine in the link libraries in the archive. It automatically
  415.         provides the window pointer which must have been set by the link
  416.         library function SetCNWindow() before.
  417.  
  418.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  419.         to be modified with LockWindow() first.
  420.  
  421.         You usually DO NOT want to call this function. It is provided to
  422.         allow an alternative TAB expansion to hook in here. It is, however,
  423.         called by the library itself in case the TAB expansion must be
  424.         aborted.
  425.  
  426.     BUGS
  427.  
  428.     SEE ALSO
  429.         LockWindow(), vnc/window.h
  430. vnc.library/LockWindow                                    vnc.library/LockWindow
  431.  
  432.     NAME
  433.         LockWindow - arbitrate exclusive access to a ViNCEd window
  434.  
  435.     SYNOPSIS
  436.         LockWindow ( cn )
  437.                      a5
  438.  
  439.         VOID LockWindow ( struct ViNCWindow * )
  440.  
  441.         
  442.         LockWindow_CN ( )
  443.  
  444.         VOID LockWindow_CN ( VOID )
  445.  
  446.     FUNCTION
  447.         Arbitrate exclusive access rights to the given ViNCEd main 
  448.         structure. By calling this function, the handler part of
  449.         ViNCEd, as well as any other task is not allowed to modify 
  450.         any part of this structure.
  451.  
  452.     INPUTS
  453.         cn - a pointer to the ViNCWindow structure, the main structure
  454.              of ViNCEd.
  455.  
  456.     RESULTS
  457.         
  458.     NOTES
  459.         There are two forms of this function available. The first form
  460.         is the "natural" library form, the second is available as a 
  461.         stub routine in the link libraries in the archive. It automatically
  462.         provides the window pointer which must have been set by the link
  463.         library function SetCNWindow() before.
  464.  
  465.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  466.         for most functions that require a pointer to this structure.
  467.  
  468.         Don't hold this lock permanently. DO NOT send any Dos I/O requests
  469.         while you're holding this lock since this results in a deadlock.
  470.         The handler part of ViNCEd will not be able to operate as long
  471.         as you're holding this lock. Call UnlockWindow() to release the
  472.         control.
  473.  
  474.         This call DOES nest!
  475.  
  476.         Assembler programmers might note that this call does not modify
  477.         any registers, but it requires the a5 (and a6) register to be
  478.         setup correctly.
  479.  
  480.     BUGS
  481.  
  482.     SEE ALSO
  483.         UnlockWindow(), vnc/window.h
  484. vnc.library/UnlockWindow                            vnc.library/UnlockWindow
  485.  
  486.     NAME
  487.         UnlockWindow - release access from a ViNCEd window
  488.  
  489.     SYNOPSIS
  490.         UnlockWindow ( cn )
  491.                      a5
  492.  
  493.         VOID UnlockWindow ( struct ViNCWindow * )
  494.  
  495.         
  496.         UnlockWindow_CN ( )
  497.  
  498.         VOID UnlockWindow_CN ( VOID )
  499.  
  500.     FUNCTION
  501.         Release access from the given ViNCEd main structure. 
  502.  
  503.     INPUTS
  504.         cn - a pointer to the ViNCWindow structure, the main structure
  505.              of ViNCEd.
  506.  
  507.     RESULTS
  508.         
  509.     NOTES
  510.         There are two forms of this function available. The first form
  511.         is the "natural" library form, the second is available as a 
  512.         stub routine in the link libraries in the archive. It automatically
  513.         provides the window pointer which must have been set by the link
  514.         library function SetCNWindow() before.
  515.  
  516.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  517.         for most functions that require a pointer to this structure.
  518.  
  519.         This call NESTS. Every call to UnlockWindow() must match one and    
  520.         exactly one call to LockWindow().
  521.  
  522.         Assembler programmers might note that this call does not modify
  523.         any registers, but it requires the a5 (and a6) register to be
  524.         setup correctly.
  525.  
  526.     BUGS
  527.  
  528.     SEE ALSO
  529.         LockWindow(), vnc/window.h
  530. vnc.library/FindCNWindow                            vnc.library/FindCNWindow
  531.  
  532.     NAME
  533.         FindCNWindow - locate a ViNCEd window related to a file handle.
  534.  
  535.     SYNOPSIS
  536.         cn = FindCNWindow ( file )
  537.         d0                    d1
  538.  
  539.         struct ViNCWindow * FindCNWindow ( BPTR )
  540.  
  541.     FUNCTION
  542.         This library function finds the ViNCEd main structure related
  543.         to a file handle, as returned by the Open() function of the
  544.         dos.library and required by other dos functions. Related to this
  545.         operation, a closed intuition window will pop-open by this called
  546.         and is not allowed to be iconified or closed until UnFindCNWindow()
  547.         is called.
  548.  
  549.     INPUTS
  550.         a BPTR to a file handle, describing the stream to the ViNCEd handler.
  551.  
  552.     RESULTS
  553.         Either the pointer to the ViNCEd main window, or NULL if the stream
  554.         is not a ViNCEd file.
  555.         This call will also open the intuition window of the ViNCEd stream.
  556.  
  557.     NOTES
  558.         You MUST call UnFindCNWindow() as soon as you don't need the
  559.         intuition window any more. The ViNCEd main structure will not
  560.         go away as long as you keep the stream open, but the intuition
  561.         window may.
  562.  
  563.         EVERY CALL TO FindCNWindow() returning non-NULL must be matched 
  564.         by one and exactly one call to UnFindCNWindow(). You MUST NOT
  565.         call UnFindCNWindow() if FindCNWindow() returned NULL.
  566.  
  567.     SEE ALSO
  568.         UnFindCNWindow(), Open(), vnc/window.h, the ViNCEd guide
  569. vnc.library/UnFindCNWindow                        vnc.library/UnFindCNWindow
  570.  
  571.     NAME
  572.         UnFindCNWindow - reallow iconification of a ViNCEd stream.
  573.  
  574.     SYNOPSIS
  575.         UnFindCNWindow ( file )
  576.                           d1
  577.  
  578.         VOID UnFindCNWindow ( BPTR )
  579.  
  580.     FUNCTION
  581.         This library function undoes the side effect of FindCNWindow()
  582.         and allows iconification and closing of the intuition window
  583.         attachted to a ViNCEd stream. MUST BE CALLED if FindCNWindow()
  584.         returned non-NULL.
  585.  
  586.     INPUTS
  587.         a BPTR to a file handle, describing the stream to the ViNCEd handler.
  588.  
  589.     RESULTS
  590.  
  591.     NOTES
  592.         You MUST call UnFindCNWindow() as soon as you don't need the
  593.         intuition window any more. The ViNCEd main structure will not
  594.         go away as long as you keep the stream open, but the intuition
  595.         window may.
  596.  
  597.         EVERY CALL TO FindCNWindow() returning non-NULL must be matched 
  598.         by one and exactly one call to UnFindCNWindow(). You MUST NOT
  599.         call UnFindCNWindow() if FindCNWindow() returned NULL.
  600.  
  601.     SEE ALSO
  602.         FindCNWindow(), vnc/window.h, the ViNCEd guide
  603. vnc.library/GetVNCPrefs                                vnc.library/GetVNCPrefs
  604.  
  605.     NAME
  606.         GetVNCPrefs - read the global preferences database
  607.  
  608.     SYNOPSIS
  609.         size = GetVNCPrefs ( buffer , size )
  610.         d0                     a0          d0
  611.  
  612.         ULONG GetVNCPrefs ( struct VNCPrefs * , LONG )
  613.  
  614.     FUNCTION
  615.         Loads the globaly active preferences of ViNCEd. These need not
  616.         to be the preferences of any window active, but the prefs that
  617.         will be used by default if a new window opens.
  618.  
  619.     INPUTS
  620.         buffer -     the VNCPrefs structure allocated by AllocPrefsBuffer.
  621.         size   -    must be set to -1.
  622.  
  623.     RESULTS
  624.         the size of the preferences structure filled in. Should be usually
  625.         ignored, this call CANNOT fail.
  626.  
  627.     NOTES
  628.         The size parameter is only provided for backwards compatibility
  629.         to VNC 2.xx and below. Passing any buffer in except those allocated
  630.         by AllocPrefsBuffer, or using any other size than -1 is discouraged.
  631.  
  632.     SEE ALSO
  633.         GetVNCDefaultPrefs(), LoadPrefsFrom(), vnc/Prefs.h
  634. vnc.library/GetVNCDefaultPrefs                    vnc.library/GetVNCDefaultPrefs
  635.  
  636.     NAME
  637.         GetVNCDefaultPrefs - read the factory default preferences
  638.  
  639.     SYNOPSIS
  640.         size = GetVNCDefaultPrefs ( buffer , size )
  641.         d0                             a0         d0
  642.  
  643.         ULONG GetVNCDefaultPrefs ( struct VNCPrefs * , LONG )
  644.  
  645.     FUNCTION
  646.         Loads the factory default preferences of ViNCEd. These are the
  647.         defaults ViNCEd will use if no other preferences are available.
  648.  
  649.     INPUTS
  650.         buffer -     the VNCPrefs structure allocated by AllocPrefsBuffer.
  651.         size   -    must be set to -1.
  652.  
  653.     RESULTS
  654.         the size of the preferences structure filled in. Should be usually
  655.         ignored, this call CANNOT fail.
  656.  
  657.     NOTES
  658.         The size parameter is only provided for backwards compatibility
  659.         to VNC 2.xx and below. Passing any buffer in except those allocated
  660.         by AllocPrefsBuffer, or using any other size than -1 is discouraged.
  661.  
  662.     SEE ALSO
  663.         GetVNCPrefs(), LoadPrefsFrom(), vnc/Prefs.h
  664. vnc.library/LoadPrefsFrom                            vnc.library/LoadPrefsFrom
  665.  
  666.     NAME
  667.         LoadPrefsFrom - load the preferences from an external file
  668.  
  669.     SYNOPSIS
  670.         size = LoadPrefsFrom ( buffer, size, filename )
  671.         d0                       a0       d0     a1
  672.  
  673.         ULONG LoadPrefsFrom ( struct VNCPrefs * , LONG , char * )
  674.  
  675.     FUNCTION
  676.         Load the ViNCEd preferences from an external file and place them
  677.         in a buffer. Except that, the loaded preferences are not used
  678.         for anything else.
  679.  
  680.     INPUTS
  681.         buffer   -     the VNCPrefs structure allocated by AllocPrefsBuffer.
  682.         size     -    must be set to -1.
  683.         filename -  the name of the file to load the preferences from.    
  684.  
  685.     RESULTS
  686.         the size of the preferences structure filled in, or zero in case 
  687.         of a failure. A secondary result code can be obtained by IoErr() 
  688.         in this case.
  689.  
  690.     NOTES
  691.         The size parameter is only provided for backwards compatibility
  692.         to VNC 2.xx and below. Passing any buffer in except those allocated
  693.         by AllocPrefsBuffer, or using any other size than -1 is discouraged.
  694.  
  695.         This routine is able to parse (and correct) all preferences 
  696.         structures used so far, starting with versions 1 of VNC 1.xx up
  697.         to the ASCII prefs file of version 3.60. This compatibility might
  698.         be removed in a future version.
  699.  
  700.         Not all preferences settings of older versions will be respected,
  701.         however.
  702.  
  703.     SEE ALSO
  704.         GetVNCDefaultPrefs(), GetVNCPrefs(), IoErr(), vnc/Prefs.h
  705. vnc.library/SavePrefs                                vnc.library/SavePrefs
  706.  
  707.     NAME
  708.         SavePrefs - save the preferences to the default location
  709.  
  710.     SYNOPSIS
  711.         success = SavePrefs ( buffer , size )
  712.         d0                      a0      d0
  713.  
  714.         LONG SavePrefs ( struct VNCPrefs * , LONG )
  715.  
  716.     FUNCTION
  717.         Save the ViNCEd preferences to the default location in the
  718.         ENVARC: drawer. This DOES NOT mean that the preferences become
  719.         active. Hence, this does NOT include the UsePrefs() function.
  720.  
  721.     INPUTS
  722.         buffer   -     the VNCPrefs structure allocated by AllocPrefsBuffer
  723.                     and filled in by you.
  724.         size     -    must be set to -1.
  725.  
  726.     RESULTS
  727.         a boolean success/failure indicator. A secondary result code can 
  728.         be obtained by IoErr() in case of failure.
  729.  
  730.     NOTES
  731.         The size parameter is only provided for backwards compatibility
  732.         to VNC 2.xx and below. Passing any buffer in except those allocated
  733.         by AllocPrefsBuffer, or using any other size than -1 is discouraged.
  734.  
  735.         This routine will always save the preferences in the new ASCII 
  736.         format 3.3; hence, they won't be available for older versions
  737.         of ViNCEd. The location this file is saved to is 
  738.         ENVARC:ViNCEd.Prefs, but don't take this for granted. To read
  739.         the global preferences, use the GetVNCPrefs() routine.
  740.  
  741.     SEE ALSO
  742.         SavePrefsTo(), UsePrefs(), GetVNCPrefs(), IoErr(), vnc/Prefs.h
  743. vnc.library/SavePrefsTo                                vnc.library/SavePrefsTo
  744.  
  745.     NAME
  746.         SavePrefsTo - save the preferences to a given file name
  747.  
  748.     SYNOPSIS
  749.         success = SavePrefsTo ( buffer , size , filename )
  750.         d0                        a0       d0        a1
  751.  
  752.         LONG SavePrefsTo ( struct VNCPrefs * , LONG , char * )
  753.  
  754.     FUNCTION
  755.         Save the ViNCEd preferences to the given location. This DOES NOT 
  756.         mean that the preferences become active. This function does not
  757.         build an icon for the preferences.
  758.  
  759.     INPUTS
  760.         buffer   -     the VNCPrefs structure allocated by AllocPrefsBuffer
  761.                     and filled in by you.
  762.         size     -    must be set to -1.
  763.         filename -     the name of the file to save the preferences under.
  764.     
  765.  
  766.     RESULTS
  767.         a boolean success/failure indicator. A secondary result code can 
  768.         be obtained by IoErr() in case of failure.
  769.  
  770.     NOTES
  771.         The size parameter is only provided for backwards compatibility
  772.         to VNC 2.xx and below. Passing any buffer in except those allocated
  773.         by AllocPrefsBuffer, or using any other size than -1 is discouraged.
  774.  
  775.         This routine will always save the preferences in the new ASCII 
  776.         format 3.3; hence, they won't be available for older versions
  777.         of ViNCEd. 
  778.  
  779.     SEE ALSO
  780.         UsePrefs(), SavePrefsTo(), GetVNCPrefs(), IoErr(), vnc/Prefs.h
  781. vnc.library/UsePrefs                                vnc.library/UsePrefs
  782.  
  783.     NAME
  784.         UsePrefs - make the preferences globally available
  785.  
  786.     SYNOPSIS
  787.         success = UsePrefs ( buffer , size )
  788.         d0                     a0       d0
  789.  
  790.         LONG UsePrefs ( struct VNCPrefs * , LONG )
  791.  
  792.     FUNCTION
  793.         Install the preferences in the ViNCEd global database. This DOES
  794.         NOT include that the prefences are installed in all open windows.
  795.         It makes the preferences only available for all windows that are
  796.         about to open after the preferences have been installed.
  797.  
  798.     INPUTS
  799.         buffer   -     the VNCPrefs structure allocated by AllocPrefsBuffer
  800.                     and filled in by you.
  801.         size     -    must be set to -1.
  802.     
  803.  
  804.     RESULTS
  805.         Non-null for success or zero on failure. A secondary result code can 
  806.         be obtained by IoErr() in case of failure.
  807.  
  808.     NOTES
  809.         The size parameter is only provided for backwards compatibility
  810.         to VNC 2.xx and below. Passing any buffer in except those allocated
  811.         by AllocPrefsBuffer, or using any other size than -1 is discouraged.
  812.  
  813.         It is not guaranteed that the preferences will be made available
  814.         immediately. There might be a delay of several seconds for the
  815.         new prefs to become active.
  816.  
  817.         This routine works differently, depending on the Os version. For
  818.         Os 1.3 or below, the preferences are simply copied to the ViNCEd
  819.         library base. For 2.0 or above, it saves the preferences in ENV:.
  820.         It's part of the VNC supervisor task to load it from there and
  821.         to make them available. Do not depend on this information, however.
  822.         It's likely that the 1.3 compatibility will be removed in the
  823.         3.70 release.
  824.  
  825.     SEE ALSO
  826.         SavePrefs(), SavePrefsTo(), GetVNCPrefs(), IoErr(), vnc/Prefs.h
  827. vnc.library/SetWindowPrefs                        vnc.library/SetWindowPrefs
  828.  
  829.     NAME
  830.         SetWindowPrefs - set the preferences for a specific ViNCWindow
  831.  
  832.     SYNOPSIS
  833.         success = SetWindowPrefs ( cn , buffer , size )
  834.         d0                           a5    a0         d0
  835.  
  836.         LONG SetWindowPrefs ( struct ViNCWindow , struct VNCPrefs * , LONG )
  837.  
  838.  
  839.         success = SetWindowPrefs_CN ( buffer, size )
  840.         d0                              a0      d0
  841.  
  842.         LONG SetWindowPrefs_CN ( struct VNCPrefs * , LONG )
  843.  
  844.     FUNCTION
  845.         Set the preferences of a given ViNCEd window, locally.
  846.  
  847.     INPUTS
  848.         cn        -    A pointer to the ViNCEd main structure. Need not to be
  849.                     locked here.
  850.         buffer    -    the VNCPrefs structure, allocated by AllocPrefsBuffer()
  851.                     and filled by you.
  852.         size    -    must be set to -1
  853.  
  854.     RESULTS
  855.         zero for failure and non-zero for success.
  856.  
  857.     NOTES
  858.         There are two forms of this function available. The first form
  859.         is the "natural" library form, the second is available as a 
  860.         stub routine in the link libraries in the archive. It automatically
  861.         provides the window pointer which must have been set by the link
  862.         library function SetCNWindow() before.
  863.  
  864.     SEE ALSO
  865.         GetWindowPrefs(), AllocPrefsBuffer(), vnc/Prefs.h
  866. vnc.library/GetWindowPrefs                        vnc.library/GetWindowPrefs
  867.  
  868.     NAME
  869.         GetWindowPrefs - get the preferences of a specific ViNCWindow
  870.  
  871.     SYNOPSIS
  872.         success = GetWindowPrefs ( cn , buffer , size )
  873.         d0                           a5    a0         d0
  874.  
  875.         LONG GetWindowPrefs ( struct ViNCWindow , struct VNCPrefs * , LONG )
  876.  
  877.  
  878.         success = GetWindowPrefs_CN ( buffer, size )
  879.         d0                              a0      d0
  880.  
  881.         LONG GetWindowPrefs_CN ( struct VNCPrefs * , LONG )
  882.  
  883.     FUNCTION
  884.         Load the preferences of a given ViNCEd window to a prefs buffer,
  885.         allocated by AllocPrefsBuffer().
  886.  
  887.     INPUTS
  888.         cn        -    A pointer to the ViNCEd main structure. Need not to be
  889.                     locked here.
  890.         buffer    -    the VNCPrefs structure, allocated by AllocPrefsBuffer()
  891.                     and filled by you.
  892.         size    -    must be set to -1
  893.  
  894.     RESULTS
  895.         zero for failure and non-zero for success.
  896.  
  897.     NOTES
  898.         There are two forms of this function available. The first form
  899.         is the "natural" library form, the second is available as a 
  900.         stub routine in the link libraries in the archive. It automatically
  901.         provides the window pointer which must have been set by the link
  902.         library function SetCNWindow() before.
  903.  
  904.     SEE ALSO
  905.         SetWindowPrefs(), AllocPrefsBuffer(), vnc/Prefs.h
  906. vnc.library/AllocPrefsBuffer                    vnc.library/AllocPrefsBuffer
  907.  
  908.     NAME
  909.         AllocPrefsBuffer - allocate a buffer for holding prefernces.
  910.  
  911.     SYNOPSIS
  912.         prefs = AllocPrefsBuffer ( )
  913.         d0
  914.  
  915.         struct VNCPrefs * AllocPrefsBuffer ( VOID )
  916.  
  917.     FUNCTION
  918.         Allocate a buffer capable of holding the ViNCEd preferences.
  919.  
  920.     INPUTS
  921.  
  922.  
  923.     RESULTS
  924.         a pointer to a initialized struct VNCPrefs. The factory default
  925.         prefs will have been filled in already. Returns NULL in case no
  926.         free storage is available.
  927.  
  928.     NOTES
  929.         This function MUST be called to allocate a buffer for holding the
  930.         preferences. The size of the preferences structure has changed
  931.         many times in the past, and will continue to change. This call
  932.         ensures that enough memory is allocated to hold a up-to-date
  933.         version of the preferences. This structure, as allocated by this
  934.         function, MUST be used by all preferences related functions.
  935.  
  936.     SEE ALSO
  937.         FreePrefsBuffer(), vnc/Prefs.h
  938. vnc.library/FreePrefsBuffer                        vnc.library/FreePrefsBuffer
  939.  
  940.     NAME
  941.         FreePrefsBuffer - deallocate preferences.
  942.  
  943.     SYNOPSIS
  944.         FreePrefsBuffer ( prefs )
  945.                           a1
  946.  
  947.         VOID FreePrefsBuffer ( struct VNCPrefs * )
  948.  
  949.     FUNCTION
  950.         Deallocate a previously allocated preferences buffer of
  951.         AllocPrefsBuffer().
  952.  
  953.     INPUTS
  954.         prefs - a pointer to the preferences buffer allocated by
  955.                 AllocPrefsBuffer(). It is save to pass in NULL.
  956.  
  957.     RESULTS
  958.  
  959.  
  960.     NOTES
  961.         This function MUST be called to release a preferences buffer
  962.         allocated by AllocVNCPrefs(). There's no other documented way
  963.         of deleting this buffer.
  964.  
  965.     SEE ALSO
  966.         AllocPrefsBuffer(), vnc/Prefs.h
  967. vnc.library/List2Prefs                                vnc.library/List2Prefs
  968.  
  969.     NAME
  970.         List2Prefs - build preferences strings from list
  971.  
  972.     SYNOPSIS
  973.         ok = List2Prefs ( cn , mlist , blist , prefs , mlen , blen 
  974.         d0                  a5   a0       a2      a1      d0     d2
  975.  
  976.                              ,mnum   , bnum)
  977.                               d1       d2
  978.  
  979.         LONG List2Prefs ( struct ViNCWindow * , struct List * , 
  980.                                                   struct List * ,
  981.                           struct VNCPrefs * , UWORD , UWORD ,
  982.                           UWORD , UWORD )
  983.  
  984.  
  985.         ok = List2Prefs_CN  (  mlist , blist , prefs , mlen , blen 
  986.         d0                       a0       a2      a1      d0     d2
  987.  
  988.                              ,mnum   , bnum)
  989.                               d1       d2
  990.  
  991.         LONG List2Prefs_CN ( struct List *  , struct List * ,
  992.                           struct VNCPrefs * , UWORD , UWORD ,
  993.                           UWORD , UWORD )
  994.  
  995.  
  996.     FUNCTION
  997.         Given two lists consisting of struct ViNCMacro *'s and
  998.         struct ViNCButton *'s, this function fills in the macro
  999.         and button settings into the preferences structure.
  1000.  
  1001.     INPUTS
  1002.         cn       - a pointer to a struct ViNCWindow. MUST be locked with
  1003.                 LockWindow() before calling this function.
  1004.         mlist - an exec style doubly linked list, filled with
  1005.                 struct ViNCMacros *.
  1006.         blist - an exec style doubly linked list, filled with
  1007.                 struct ViNCButtons *.
  1008.         prefs - a pointer to the preferences buffer allocated by
  1009.                 AllocPrefsBuffer(). 
  1010.         mlen  - the maximal length of a macro, should be set to
  1011.                 VPF_FUNCLENGTH.
  1012.         blen  - the maximal length of a button title, should be set to
  1013.                 VPF_SHORTLENGTH.
  1014.         mnum  - the maximal number of macros to be filled in, should
  1015.                 be set to VPF_MACROS.
  1016.         bnum  - the maximal number of buttons to be filled in, should    
  1017.                 be set to VPF_MAXBUTTONS.
  1018.  
  1019.     RESULTS
  1020.         zero for failure or non-zero for success.
  1021.  
  1022.     NOTES
  1023.         There are two forms of this function available. The first form
  1024.         is the "natural" library form, the second is available as a 
  1025.         stub routine in the link libraries in the archive. It automatically
  1026.         provides the window pointer which must have been set by the link
  1027.         library function SetCNWindow() before.
  1028.  
  1029.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1030.         to be modified with LockWindow() first.
  1031.  
  1032.         The encoding of the strings in the preferences is somewhat un-
  1033.         convenient for the C author. To avoid this drawback, the list
  1034.         of macros and buttons can be converted to a linked list of
  1035.         structures containing the same information which is much
  1036.         easier to handle - this is done by Prefs2List(). This function
  1037.         reverses this process and fills in the lists back to the 
  1038.         preferences structure.
  1039.  
  1040.         After you're done with the lists, call FreeMacroList() to get
  1041.         rid of them.
  1042.  
  1043.         The system macros and some system texts count also as "macros"!
  1044.         VPF_MACROS is therefore LARGER than ten, the number of user
  1045.         macros.
  1046.  
  1047.     SEE ALSO
  1048.         Prefs2List(), FreeMacroList(), vnc/Prefs.h, exec/lists.h
  1049. vnc.library/Prefs2List                                vnc.library/Prefs2List
  1050.  
  1051.     NAME
  1052.         Prefs2List - build list of preferences strings
  1053.  
  1054.     SYNOPSIS
  1055.         ok = Prefs2List ( cn , mlist , blist , prefs , mlen , blen 
  1056.         d0                  a5   a0       a2      a1      d0     d2
  1057.  
  1058.                              ,mnum   , bnum)
  1059.                               d1       d2
  1060.  
  1061.         LONG Prefs2List ( struct ViNCWindow * , struct List * , 
  1062.                                                   struct List * ,
  1063.                           struct VNCPrefs * , UWORD , UWORD ,
  1064.                           UWORD , UWORD )
  1065.  
  1066.  
  1067.         ok = Prefs2List_CN  (  mlist , blist , prefs , mlen , blen 
  1068.         d0                       a0       a2      a1      d0     d2
  1069.  
  1070.                              ,mnum   , bnum)
  1071.                               d1       d2
  1072.  
  1073.         LONG Prefs2List_CN ( struct List *  , struct List * ,
  1074.                           struct VNCPrefs * , UWORD , UWORD ,
  1075.                           UWORD , UWORD )
  1076.  
  1077.  
  1078.     FUNCTION
  1079.         Given a ViNCEd preferences structure, this function builds
  1080.         two lists of the macros and buttons defined in the preferences
  1081.         structure for easier access.
  1082.  
  1083.     INPUTS
  1084.         cn       - a pointer to a struct ViNCWindow. MUST be locked with
  1085.                 LockWindow() before calling this function.
  1086.         mlist - an exec style doubly linked list. This list is filled
  1087.                 in with struct ViNCMacros *'s.
  1088.         blist - an exec style doubly linked list. This list will be
  1089.                 filled with    struct ViNCButtons *.
  1090.         prefs - a pointer to the preferences buffer allocated by
  1091.                 AllocPrefsBuffer(). 
  1092.         mlen  - the maximal length of a macro, should be set to
  1093.                 VPF_FUNCLENGTH. The vnc.library will allocate
  1094.                 enough space for the structures to hold strings of
  1095.                 at least this size.
  1096.         blen  - the maximal length of a button title, should be set to
  1097.                 VPF_SHORTLENGTH. The vnc.library will allocate
  1098.                 at least "mlen" bytes for the button body, and "blen"
  1099.                 bytes for the button title.
  1100.         mnum  - the maximal number of macros to be filled in, should
  1101.                 be set to VPF_MACROS.
  1102.         bnum  - the maximal number of buttons to be filled in, should    
  1103.                 be set to VPF_MAXBUTTONS.
  1104.  
  1105.     RESULTS
  1106.         zero for failure or non-zero for success. In case of failure, both
  1107.         lists will be empty and all partially allocated structures will
  1108.         have been deallocated already.
  1109.  
  1110.     NOTES
  1111.         There are two forms of this function available. The first form
  1112.         is the "natural" library form, the second is available as a 
  1113.         stub routine in the link libraries in the archive. It automatically
  1114.         provides the window pointer which must have been set by the link
  1115.         library function SetCNWindow() before.
  1116.  
  1117.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1118.         to be modified with LockWindow() first.
  1119.  
  1120.         The encoding of the strings in the preferences is somewhat un-
  1121.         convenient for the C author. To avoid this drawback, the list
  1122.         of macros and buttons can be converted to a linked list of
  1123.         structures containing the same information which is much
  1124.         easier to handle, as done by Prefs2List(). You're now holding
  1125.         struct ViNCButtons and struct ViNCMacros that can be manipulated
  1126.         much easier. The strings associated to these structures will
  1127.         be at least the specified number of bytes long, even though the
  1128.         actual texts might be shorter.
  1129.  
  1130.         To copy these lists back to the preferences after modification,
  1131.         use List2Prefs(). To 
  1132.  
  1133.         After you're done with the lists, call FreeMacroList() to get
  1134.         rid of them.
  1135.  
  1136.     SEE ALSO
  1137.         List2Prefs(), FreeMacroList(), vnc/Prefs.h, exec/lists.h
  1138. vnc.library/FreeMacroList                            vnc.library/FreeMacroList
  1139.  
  1140.     NAME
  1141.         FreeMacroList - deallocate a list build by Prefs2List
  1142.  
  1143.     SYNOPSIS
  1144.         FreeMacroList ( cn , list )
  1145.                         a5   a0
  1146.  
  1147.         VOID FreeMacroList ( struct ViNCWindow * , struct List * )
  1148.  
  1149.  
  1150.         FreeMacroList_CN ( list )
  1151.                            a0
  1152.  
  1153.         VOID FreeMacroList_CN ( struct List * )
  1154.  
  1155.  
  1156.     FUNCTION
  1157.         This function deallocates a list build by Prefs2List(). Both
  1158.         lists, the macro list as well as the button list should be
  1159.         passed in to release them.
  1160.  
  1161.     INPUTS
  1162.         cn       - a pointer to a struct ViNCWindow. MUST be locked with
  1163.                 LockWindow() before calling this function.
  1164.         list  - an exec style doubly linked list, filled either with
  1165.                 struct ViNCMacros or struct ViNCButtons.
  1166.  
  1167.     RESULTS
  1168.  
  1169.     NOTES
  1170.         There are two forms of this function available. The first form
  1171.         is the "natural" library form, the second is available as a 
  1172.         stub routine in the link libraries in the archive. It automatically
  1173.         provides the window pointer which must have been set by the link
  1174.         library function SetCNWindow() before.
  1175.  
  1176.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1177.         to be modified with LockWindow() first.
  1178.  
  1179.         This function MUST be called to release the lists allocated with
  1180.         Prefs2List. Both lists, the macro list and the button list must
  1181.         be passed to this function to get deallocated. It is safe to 
  1182.         pass an empty (but initialized!) list.
  1183.  
  1184.     SEE ALSO
  1185.         List2Prefs(), Prefs2List(), vnc/Prefs.h, exec/lists.h
  1186. vnc.library/SendRequestPattern                    vnc.library/SendRequestPattern
  1187.  
  1188.     NAME
  1189.         SendRequestPattern - expand a search pattern by a requester
  1190.  
  1191.     SYNOPSIS
  1192.         ok = SendRequestPattern ( cn , pat )
  1193.         d0                          a5   a0
  1194.  
  1195.         BOOL SendRequestPattern ( struct ViNCWindow * , char * )
  1196.  
  1197.  
  1198.         ok = SendRequestPattern_CN ( pat )
  1199.         d0                               a0
  1200.  
  1201.         BOOL SendRequestPattern_CN ( char * )
  1202.  
  1203.  
  1204.     FUNCTION
  1205.         Sends an asynchronous request to the TAB supervisor to expand
  1206.         a given pattern. If the user satisfies the request, the pattern
  1207.         will be inserted back in the ViNCEd window.
  1208.  
  1209.     INPUTS
  1210.         cn       - a pointer to a struct ViNCWindow. MUST be locked with
  1211.                 LockWindow() before calling this function.
  1212.         pat   - a standard dos match pattern.
  1213.  
  1214.     RESULTS
  1215.         a boolean success/failure indicator. This indicator does ONLY
  1216.         inform you whether the request was successfully sent to the
  1217.         supervisor. It DOES NOT include that the request was satisfied
  1218.         by the user, or whether there was a failure in the supervisor
  1219.         code itself.
  1220.  
  1221.     NOTES
  1222.         There are two forms of this function available. The first form
  1223.         is the "natural" library form, the second is available as a 
  1224.         stub routine in the link libraries in the archive. It automatically
  1225.         provides the window pointer which must have been set by the link
  1226.         library function SetCNWindow() before.
  1227.  
  1228.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1229.         to be modified with LockWindow() first.
  1230.  
  1231.         You usually DO NOT want to call this function. It is provided to
  1232.         allow an alternative macro expansion to hook in here. It is, however,
  1233.         called by the library itself in case a macro with a pattern has
  1234.         to be expanded.
  1235.  
  1236.     BUGS
  1237.         The string passed in MUST stay valid as long as the expansion is
  1238.         still working. This is usually not a problem since you don't want
  1239.         to call this routine anyways; instead, you might want to patch it.
  1240.  
  1241.     SEE ALSO
  1242.         LockWindow(), ConvertString()
  1243. vnc.library/SendWindowOpens                        vnc.library/SendWindowOpens
  1244.  
  1245.     NAME
  1246.         SendWindowOpens - inform the TAB expansion about opening the window
  1247.  
  1248.     SYNOPSIS
  1249.         ok = SendWindowOpens ( cn )
  1250.         d0                       a5 
  1251.  
  1252.         BOOL SendWindowOpens ( struct ViNCWindow * )
  1253.         
  1254.  
  1255.         ok = SendWindowOpens_CN ( )
  1256.         d0                         
  1257.  
  1258.         BOOL SendWindowOpens_CN ( VOID )
  1259.  
  1260.  
  1261.     FUNCTION
  1262.         Send a request to the TAB expansion supervisor that the intuition
  1263.         window associated to a WiNCEd window was opened. This request
  1264.         is used to install the icon drop feature.
  1265.  
  1266.     INPUTS
  1267.         cn       - a pointer to a struct ViNCWindow. MUST be locked with
  1268.                 LockWindow() before calling this function.
  1269.  
  1270.     RESULTS
  1271.         a boolean success/failure indicator. This procedure is actually
  1272.         synchronous.
  1273.  
  1274.     NOTES
  1275.         There are two forms of this function available. The first form
  1276.         is the "natural" library form, the second is available as a 
  1277.         stub routine in the link libraries in the archive. It automatically
  1278.         provides the window pointer which must have been set by the link
  1279.         library function SetCNWindow() before.
  1280.  
  1281.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1282.         to be modified with LockWindow() first.
  1283.  
  1284.         You usually DO NOT want to call this function. It is provided to
  1285.         allow an alternative TAB expansion to hook in here. It is, however,
  1286.         called by the library itself in case the intuition window opens to 
  1287.         allow installing the icon drop feature, etc. 
  1288.  
  1289.     BUGS
  1290.         The name is misleading. This is a synchronous request.
  1291.         This function calls the workbench library function AddAppWindowA()
  1292.         directly from the handler task. While not a problem on a standard
  1293.         Amiga system, I can think of some patches where this leads to a
  1294.         problem. However, I currently don't see another way of doing this.
  1295.  
  1296.     SEE ALSO
  1297.         SendWindowCloses(), SendWindowQuits(), AddAppWindowA()
  1298. vnc.library/SendWindowCloses                    vnc.library/SendWindowCloses
  1299.  
  1300.     NAME
  1301.         SendWindowCloses - inform the TAB expansion about closing the window
  1302.  
  1303.     SYNOPSIS
  1304.         ok = SendWindowCloses ( cn )
  1305.         d0                        a5 
  1306.  
  1307.         BOOL SendWindowCloses ( struct ViNCWindow * )
  1308.         
  1309.  
  1310.         ok = SendWindowCloses_CN ( )
  1311.         d0                         
  1312.  
  1313.         BOOL SendWindowCloses_CN ( VOID )
  1314.  
  1315.  
  1316.     FUNCTION
  1317.         Send a request to the TAB expansion supervisor that the intuition
  1318.         window associated to a WiNCEd window is about to be closed. This 
  1319.         request is used to remove the icon drop feature.
  1320.  
  1321.     INPUTS
  1322.         cn       - a pointer to a struct ViNCWindow. MUST be locked with
  1323.                 LockWindow() before calling this function.
  1324.  
  1325.     RESULTS
  1326.         a boolean success/failure indicator. This is actually a
  1327.         synchronous request.
  1328.  
  1329.     NOTES
  1330.         There are two forms of this function available. The first form
  1331.         is the "natural" library form, the second is available as a 
  1332.         stub routine in the link libraries in the archive. It automatically
  1333.         provides the window pointer which must have been set by the link
  1334.         library function SetCNWindow() before.
  1335.  
  1336.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1337.         to be modified with LockWindow() first.
  1338.  
  1339.         You usually DO NOT want to call this function. It is provided to
  1340.         allow an alternative TAB expansion to hook in here. It is, however,
  1341.         called by the library itself in case the intuition window closes 
  1342.         to allow removing the icon drop feature, etc. 
  1343.  
  1344.     BUGS
  1345.         The name is misleading. This is a synchronous request.
  1346.         This function calls the workbench library function RemoveAppWindow()
  1347.         directly from the handler task. While not a problem on a standard
  1348.         Amiga system, I can think of some patches where this leads to a
  1349.         problem. However, I currently don't see another way of doing this.
  1350.  
  1351.     SEE ALSO
  1352.         SendWindowOpens(), SendWindowQuits(), RemoveAppWindow()
  1353. vnc.library/SendWindowQuit                        vnc.library/SendWindowQuits
  1354.  
  1355.     NAME
  1356.         SendWindowQuits - inform the TAB expansion to shut down.
  1357.  
  1358.     SYNOPSIS
  1359.         ok = SendWindowQuits ( cn )
  1360.         d0                       a5 
  1361.  
  1362.         BOOL SendWindowQuits ( struct ViNCWindow * )
  1363.         
  1364.  
  1365.         ok = SendWindowQuits_CN ( )
  1366.         d0                         
  1367.  
  1368.         BOOL SendWindowQuits_CN ( VOID )
  1369.  
  1370.  
  1371.     FUNCTION
  1372.         Send a request to the TAB expansion supervisor that the handler
  1373.         is about to shut down. This is a bit more radical than the
  1374.         SwitchTabExpansion() call. The handler is also supposed to remove
  1375.         a possible icon drop feature, as well as to shut down completely,
  1376.         whereas it is possible to disable the TAB expansion temporarely
  1377.         with SwitchTabExpansion().
  1378.  
  1379.     INPUTS
  1380.         cn       - a pointer to a struct ViNCWindow. MUST be locked with
  1381.                 LockWindow() before calling this function.
  1382.  
  1383.     RESULTS
  1384.         a boolean success/failure indicator. This is an assynchronous 
  1385.         request, the indicator does only tell you whether the routine
  1386.         was able to deliver the request to the TAB expansion task, 
  1387.         NOT MORE.
  1388.  
  1389.     NOTES
  1390.         There are two forms of this function available. The first form
  1391.         is the "natural" library form, the second is available as a 
  1392.         stub routine in the link libraries in the archive. It automatically
  1393.         provides the window pointer which must have been set by the link
  1394.         library function SetCNWindow() before.
  1395.  
  1396.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1397.         to be modified with LockWindow() first.
  1398.  
  1399.         You usually DO NOT want to call this function. It is provided to
  1400.         allow an alternative TAB expansion to hook in here. It is, however,
  1401.         called by the library itself in case the handler shuts down.
  1402.  
  1403.         The handler shut, upon arrival of this message, remove the icon
  1404.         drop, and shutdown itself.
  1405.  
  1406.     BUGS
  1407.         This function calls the workbench library function RemoveAppWindow()
  1408.         directly from the handler task. While not a problem on a standard
  1409.         Amiga system, I can think of some patches where this leads to a
  1410.         problem. However, I currently don't see another way of doing this.
  1411.  
  1412.         Feel prepared that this routine is called MORE THAN ONCE. This
  1413.         might happen if the handler wasn't able to shut down in time.
  1414.         
  1415.         The details about this routine are rather messy; since this HAS TO
  1416.         BE asynchronous to avoid deadlocks, but on the other hand the
  1417.         handler task has to know when the expansion has, indeed, shut down,
  1418.         this problem is solved by a trick: The TAB expansion task opens
  1419.         a ViNCEd stream itself which will inhibit that the handler shuts
  1420.         down before the TAB expansion quits. On this request, the handler
  1421.         shuts down and, while doing so, closes this stream. If the 
  1422.         ACTION_CLOSE packet is received by the handler, this function is
  1423.         called again.
  1424.         Furthermore, to allow the close window requester working, the
  1425.         open count of the ViNCWindow is incremented and decremented manually
  1426.         by this function, which is usually a bad thing(tm) to do.
  1427.  
  1428.         Unless you know quite a lot about these internals, it's
  1429.         probably not a good idea to hook in here.
  1430.  
  1431.     SEE ALSO
  1432.         SendWindowOpens(), SendWindowCloses(), RemoveAppWindow()
  1433. vnc.library/VNCRequestFile                            vnc.library/VNCRequestFile
  1434.  
  1435.     NAME
  1436.         VNCRequestFile - display a file requester
  1437.  
  1438.     SYNOPSIS
  1439.         ok = VNCRequestFile ( cn , request )
  1440.         d0                      a5   a0
  1441.  
  1442.         LONG VNCRequestFile ( struct ViNCWindow * , struct ViRequest * )
  1443.  
  1444.  
  1445.         ok = VNCRequestFile_CN (  request )
  1446.         d0                            a0
  1447.  
  1448.         LONG VNCRequestFile_CN ( struct ViRequest * )
  1449.  
  1450.  
  1451.     FUNCTION
  1452.         Display a file requester described by the structure ViRequest,
  1453.         and fill in the requested file and directory names.
  1454.  
  1455.     INPUTS
  1456.         cn         - a pointer to a struct ViNCWindow. Need not to be locked.
  1457.  
  1458.         request - a pointer to an initialized struct ViRequest:
  1459.  
  1460.         struct ViRequest {
  1461.             char            *vreq_Hail;     /* title string */
  1462.             char            *vreq_File;     /* file name */
  1463.             char            *vreq_Dir;      /* directory name */
  1464.             struct Window   *vreq_Window;   /* window to lock */
  1465.             UWORD            vreq_Flags;    /* flags, see below */
  1466.             ULONG            vreq_reserved; /* must be zero */
  1467.                char            *vreq_Pattern;  /* pattern matching string */
  1468.             WORD             vreq_LeftEdge;
  1469.             WORD             vreq_TopEdge;    /* requester position */
  1470.             UWORD             vreq_Width;
  1471.             UWORD             vreq_Height;    /* requester dimensions */
  1472.         };
  1473.  
  1474.         The following flags can be set:
  1475.  
  1476.         /* Split file name in file and directory, fill in dir automatically */
  1477.         #define VREQ_AUTOSPLIT_BIT      0
  1478.         #define VREQ_AUTOSPLIT_MASK     (1L<<0)
  1479.  
  1480.         /* Split file in dir and pattern, clear file */
  1481.         #define VREQ_AUTOPAT_BIT        1
  1482.         #define VREQ_AUTOPAT_MASK       (1L<<1)
  1483.  
  1484.         /* Join file and dir after requesting */
  1485.         #define VREQ_AUTOJOIN_BIT       2
  1486.         #define VREQ_AUTOJOIN_MASK      (1L<<2)
  1487.  
  1488.         /* Requester dimensions are valid */
  1489.         #define VREQ_DIMENSIONS_BIT        8
  1490.         #define VREQ_DIMENSIONS_MASK    (1L<<8)
  1491.                    
  1492.     RESULTS
  1493.         a boolean success/failure indicator. 
  1494.  
  1495.     NOTES
  1496.         There are two forms of this function available. The first form
  1497.         is the "natural" library form, the second is available as a 
  1498.         stub routine in the link libraries in the archive. It automatically
  1499.         provides the window pointer which must have been set by the link
  1500.         library function SetCNWindow() before.
  1501.  
  1502.         Depending on what is available, this function uses either the
  1503.         arp.library or the asl.library. If ReqChange is installed, the
  1504.         asl call will be redirected to reqtools. However, it is likely
  1505.         that support for the arp.library is about to be removed in the
  1506.         3.70 release of ViNCEd.
  1507.         
  1508.     BUGS
  1509.         I really don't remember what the ViNCWindow pointer is used for
  1510.         in this routine, however, passing in NULL is NOT allowed. A
  1511.         future release should really work without it.
  1512.  
  1513.     SEE ALSO
  1514.         vnc/requester.h
  1515. vnc.library/CtrlZSuspend                            vnc.library/CtrlZSuspend
  1516.  
  1517.     NAME
  1518.         CtrlZSuspend - suspend the given owner, launch/find a new shell
  1519.  
  1520.     SYNOPSIS
  1521.         ok = CtrlZSuspend ( cn , owner )
  1522.         d0                    a5   a4
  1523.  
  1524.         LONG CtrlZSuspend ( struct ViNCWindow * , struct ViOwner * )
  1525.  
  1526.  
  1527.         ok = CtrlZSuspend_CN ( owner )
  1528.         d0                       a4
  1529.  
  1530.         LONG CtrlZSuspend_CN ( struct ViOwner * )
  1531.  
  1532.  
  1533.     FUNCTION
  1534.         Suspend the process(es) associated to the supplied owner. Find
  1535.         a new free shell process or generate a new shell process, bring
  1536.         this process to foreground.
  1537.  
  1538.     INPUTS
  1539.         cn         - a pointer to a struct ViNCWindow. MUST be locked with
  1540.                   LockWindow().
  1541.  
  1542.         owner    - a pointer to a ViNCEd owner structure, see vnc/owner.h
  1543.  
  1544.     RESULTS
  1545.         a boolean success/failure indicator. This this packet sends
  1546.         basically a request to the TAB expansion supervisor, this indicates
  1547.         only whether the function was able to send the request, not if
  1548.         it was able to launch a new shell.
  1549.  
  1550.     NOTES
  1551.         There are two forms of this function available. The first form
  1552.         is the "natural" library form, the second is available as a 
  1553.         stub routine in the link libraries in the archive. It automatically
  1554.         provides the window pointer which must have been set by the link
  1555.         library function SetCNWindow() before.
  1556.  
  1557.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1558.         to be modified with LockWindow() first.
  1559.  
  1560.         You usually DO NOT want to call this function. It is provided to
  1561.         allow an alternative TAB expansion to hook in here. It is, however,
  1562.         called by the library itself in case the user presses ^Z to suspend
  1563.         the foreground owner. Some sanity checks have already been made by
  1564.         the library if this function is called, but not enough. Since the
  1565.         ^Z feature is more or less a hack, you should check very carefully
  1566.         if the process of the owner can be aborted safely. Especially, the
  1567.         current implementation checks
  1568.  
  1569.         - ViNCEd is in shell mode
  1570.         - the TAB expansion supervisor is up and running
  1571.         - whether another suspend request is still running
  1572.         - the port of the last process of this owner that wrote to
  1573.           the ViNCEd window is still available.
  1574.         - whether any other I/O requests are pending.
  1575.         - whether this port is a valid port operating on signal basis
  1576.         - whether the task of this port is associated to a valid and
  1577.           known task in the exec list of tasks.
  1578.         - whether a CLI for this task is available.
  1579.         - whether a module is loaded for this CLI or it is non-interactive.
  1580.         - whether it is indeed in foreground
  1581.         
  1582.         If all this is fine, the task is temporarely removed from 
  1583.         execution. It is the job of the TAB expansion supervisor to
  1584.         resceldure this task and to run a new shell.
  1585.  
  1586.     BUGS
  1587.         The ^Z feature is really messy, but I don't see a cleaner way of
  1588.         making this possible with the current shell. The ViNCEd 3.60
  1589.         version implements the "Medium Mode" with which something like
  1590.         this should be able much more system friendly. Unfortunately,
  1591.         there is not yet a shell that supports it.
  1592.  
  1593.     SEE ALSO
  1594.         vnc/owner.h, dos/dosextens.h, exec/tasks.h, exec/ports.h
  1595. vnc.library/VNCUniqueID                                vnc.library/VNCUniqueID
  1596.  
  1597.     NAME
  1598.         VNCUniqueID - provide a unique ID
  1599.  
  1600.     SYNOPSIS
  1601.         ok = VNCUniqueID ( )
  1602.  
  1603.         ULONG VNCUniqueID ( VOID )
  1604.  
  1605.     FUNCTION
  1606.         Build a new unique ID. This function should be used in case
  1607.         you need a unique name for a new owner.
  1608.  
  1609.     INPUTS
  1610.  
  1611.     RESULTS    
  1612.         a system wide unique unsigned long number. Won't be returned
  1613.         a second time unless this routine runs out of new available IDs.
  1614.  
  1615.     NOTES
  1616.         If the utility library is available, this function is identical
  1617.         to UniqueID(); hence, the number returned is even unique in a 
  1618.         system wide context. If the utility library is not availabe, i.e.
  1619.         in a 1.3 environment, the vnc.library implements its own version.
  1620.  
  1621.         However, it is likely that support for 1.2 and 1.3 will be dropped
  1622.         in release 3.70 of ViNCEd.
  1623.  
  1624.     SEE ALSO
  1625.         UniqueID()
  1626. vnc.library/GetNodeN                                    vnc.library/GetNodeN
  1627.  
  1628.     NAME
  1629.         GetNodeN - get the nth node of a list.
  1630.  
  1631.     SYNOPSIS
  1632.         node = GetNodeN ( list , count )
  1633.         d0                  a0     d0
  1634.  
  1635.         struct Node * GetNodeN ( struct List * , ULONG count )
  1636.  
  1637.  
  1638.     FUNCTION
  1639.         Find the node of a given index in a list.
  1640.  
  1641.     INPUTS
  1642.         list  -    the list to search the node in.
  1643.         count -    the index of the node to locate. The first node in
  1644.                 the list is node number #0.
  1645.  
  1646.     RESULTS    
  1647.         the node number n, or NULL if the list run out of nodes.
  1648.  
  1649.     NOTES
  1650.  
  1651.     SEE ALSO
  1652.         
  1653. vnc.library/AllocEdMem                                vnc.library/AllocEdMem
  1654.  
  1655.     NAME
  1656.         AllocEdMem - allocate static memory in ViNCEd context
  1657.  
  1658.     SYNOPSIS
  1659.         mem = AllocEdMem ( cn , bytesize , reqments )
  1660.         d0                   a5    d0           d1
  1661.  
  1662.         void * AllocEdMem ( struct ViNCWindow * , ULONG , ULONG )
  1663.  
  1664.  
  1665.         mem = AllocEdMem_CN (  bytesize , reqments )
  1666.         d0                       d0          d1
  1667.  
  1668.         void * AllocEdMem_CN ( ULONG , ULONG )
  1669.  
  1670.  
  1671.     FUNCTION
  1672.         Allocate memory in context of the ViNCEd window. This memory
  1673.         allocation is pooled; the memory allocated this way will be
  1674.         deallocated automatically as soon as the ViNCEd window, i.e. 
  1675.         the handler task shuts down. The memory allocated by this
  1676.         function is static memory, as all system memory; i.e. the memory
  1677.         allocated will not move.
  1678.  
  1679.     INPUTS
  1680.         cn             -    the ViNCWindow structure to take the memory from.
  1681.                         MUST be locked before calling this function.
  1682.         bytesize    -    number of bytes to allocate
  1683.         reqments    -    requirements. Only MEMF_PUBLIC requests will be
  1684.                         pooled, but all requests will be satisfied if
  1685.                         possible.
  1686.  
  1687.     RESULTS    
  1688.         a pointer to the memory allocated, or NULL on failure.
  1689.  
  1690.     NOTES
  1691.         There are two forms of this function available. The first form
  1692.         is the "natural" library form, the second is available as a 
  1693.         stub routine in the link libraries in the archive. It automatically
  1694.         provides the window pointer which must have been set by the link
  1695.         library function SetCNWindow() before.
  1696.  
  1697.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1698.         to be modified with LockWindow() first.
  1699.  
  1700.     SEE ALSO
  1701.         AllocMem(), FreeEdMem(), exec/memory.h
  1702.         
  1703. vnc.library/FreeEdMem                                    vnc.library/FreeEdMem
  1704.  
  1705.     NAME
  1706.         FreeEdMem - deallocate editor memory.
  1707.  
  1708.     SYNOPSIS
  1709.         FreeEdMem ( cn , mem )
  1710.                     a5     a1
  1711.  
  1712.         VOID FreeEdMem ( struct ViNCWindow * , void * )
  1713.  
  1714.  
  1715.         FreeEdMem_CN ( mem )
  1716.                        a1
  1717.  
  1718.         VOID FreeEdMem_CN ( void * )
  1719.  
  1720.  
  1721.     FUNCTION
  1722.         Deallocate memory in context of the ViNCEd window. You should give
  1723.         back all memory allocated by AllocEdMem, even though this is
  1724.         done by ViNCEd automatically as soon as the handler shuts down.
  1725.  
  1726.     INPUTS
  1727.         cn     -    the ViNCWindow structure to take the memory from.
  1728.                 MUST be locked before calling this function.
  1729.         mem    -    pointer of the memory block    to release. It is safe to
  1730.                 pass in NULL.
  1731.  
  1732.     RESULTS    
  1733.  
  1734.     NOTES
  1735.         There are two forms of this function available. The first form
  1736.         is the "natural" library form, the second is available as a 
  1737.         stub routine in the link libraries in the archive. It automatically
  1738.         provides the window pointer which must have been set by the link
  1739.         library function SetCNWindow() before.
  1740.  
  1741.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1742.         to be modified with LockWindow() first.
  1743.  
  1744.     SEE ALSO
  1745.         AllocEdMem(), FreeMem(), exec/memory.h
  1746.         
  1747. vnc.library/AllocLine                                    vnc.library/AllocLine
  1748.  
  1749.     NAME
  1750.         AllocLine - allocate dynamic memory.
  1751.  
  1752.     SYNOPSIS
  1753.         dynnode = AllocLine ( cn , size )
  1754.         d0                       a5   d0
  1755.  
  1756.         struct DynNode * AllocLine ( struct ViNCWindow * , UWORD )
  1757.  
  1758.  
  1759.         dynnode = AllocLine_CN ( size )
  1760.         d0                          d0
  1761.  
  1762.         struct DynNode * AllocLine_CN ( UWORD )
  1763.  
  1764.  
  1765.     FUNCTION
  1766.         Allocate dynamic memory in the editor window context.
  1767.  
  1768.     INPUTS
  1769.         cn      -    the ViNCWindow structure to take the memory from.
  1770.                 MUST be locked before calling this function.
  1771.         size -    size of memory to allocate. This size does not include
  1772.                 the DynNode header, as well as the LineBody/OutNodeBody.
  1773.                 The sizes of these structures are added automatically
  1774.                 to the requested size.
  1775.  
  1776.     RESULTS    
  1777.         A pointer to a struct DynOutNode or DynLine, with a struct
  1778.         DynNode header. Should be casted to the apropriate type and
  1779.         initialized as such type.
  1780.  
  1781.     NOTES
  1782.         There are two forms of this function available. The first form
  1783.         is the "natural" library form, the second is available as a 
  1784.         stub routine in the link libraries in the archive. It automatically
  1785.         provides the window pointer which must have been set by the link
  1786.         library function SetCNWindow() before.
  1787.  
  1788.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1789.         to be modified with LockWindow() first.
  1790.  
  1791.         This is dynamic memory, be warned! This means that the memory
  1792.         allocated by this call MAY MOVE thru memory if the vnc.library
  1793.         runs out of free space. DO NOT hold pointers to these structures,
  1794.         they may get invalid as soon as anybody else (or you yourself)
  1795.         allocate memory thru AllocLine(). Instead, insert the LineBody/
  1796.         OutnodeBody part of this structure in any exec list you want.
  1797.         The list pointers will be then corrected automagically by the
  1798.         vnc.library as soon as this memory must be relocated. It is
  1799.         VERY important that you set the vln_succln/vln_predln pointers
  1800.         in the "...body" structure to NULL as soon as you remove this
  1801.         structure from a list. Do NOT leave in "dangling pointers" or
  1802.         you'll experience a surprise if this structure must be relocated.
  1803.         
  1804.         Another safe way of keeping a pointer on this structure is to    
  1805.         use the UserLinePtr in the UserNode of the ViNCWindow structure,
  1806.         but you must make sure that you're the only user of this pointer.
  1807.         This pointer will be corrected by the vnc.library, too.
  1808.         Remember to set this poiner to NULL as soon as you don't need it
  1809.         any longer.
  1810.  
  1811.         It's usually not a good idea to play with dynamical memory unless
  1812.         you know what you're doing.
  1813.  
  1814.     SEE ALSO
  1815.         FreeLine(), vnc/dynamics.h    
  1816. vnc.library/FreeLine                                    vnc.library/FreeLine
  1817.  
  1818.     NAME
  1819.         FreeLine - release dynamic memory.
  1820.  
  1821.     SYNOPSIS
  1822.         FreeLine ( cn , line )
  1823.                    a5   a0
  1824.  
  1825.         VOID FreeLine ( struct ViNCWindow * , struct DynNode * )
  1826.  
  1827.  
  1828.         FreeLine_CN ( line )
  1829.                       a0
  1830.  
  1831.         VOID FreeLine_CN ( struct DynNode * )
  1832.  
  1833.  
  1834.  
  1835.     FUNCTION
  1836.         Release dynamical memory.
  1837.  
  1838.     INPUTS
  1839.         cn      -    the ViNCWindow structure the memory was taken from.
  1840.                 MUST be locked before calling this function.
  1841.         line -    pointer to the struct DynNode, as allocated by the
  1842.                 AllocLine() call.
  1843.  
  1844.     RESULTS    
  1845.  
  1846.     NOTES
  1847.         There are two forms of this function available. The first form
  1848.         is the "natural" library form, the second is available as a 
  1849.         stub routine in the link libraries in the archive. It automatically
  1850.         provides the window pointer which must have been set by the link
  1851.         library function SetCNWindow() before.
  1852.  
  1853.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1854.         to be modified with LockWindow() first.
  1855.  
  1856.         This is dynamic memory, be warned! This means that the memory
  1857.         allocated by this call MAY MOVE thru memory if the vnc.library
  1858.         runs out of free space. DO NOT hold pointers to these structures,
  1859.         they may get invalid as soon as anybody else (or you yourself)
  1860.         allocate memory thru AllocLine(). Instead, insert the LineBody/
  1861.         OutnodeBody part of this structure in any exec list you want.
  1862.         The list pointers will be then corrected automagically by the
  1863.         vnc.library as soon as this memory must be relocated. It is
  1864.         VERY important that you set the vln_succln/vln_predln pointers
  1865.         in the "...body" structure to NULL as soon as you remove this
  1866.         structure from a list. Do NOT leave in "dangling pointers" or
  1867.         you'll experience a surprise if this structure must be relocated.
  1868.  
  1869.         Make sure the vln_succln/vln_predln pointers in the "...body"
  1870.         structure are set both to NULL if you call this function, or
  1871.         ViNCEd will try to remove this structure from a doubly linked
  1872.         list, whether it is inserted there or not.        
  1873.  
  1874.         It's usually not a good idea to play with dynamical memory unless
  1875.         you know what you're doing.
  1876.  
  1877.     SEE ALSO
  1878.         AllocLine(), vnc/dynamics.h    
  1879. vnc.library/NotifyChOwner                            vnc.library/NotifyChOwner
  1880.  
  1881.     NAME
  1882.         NotifyChOwner - notify an Owner about a fg/bg change.
  1883.  
  1884.     SYNOPSIS
  1885.         ok = NotifyChOwner ( cn , old , new , cmd )
  1886.         d0                     a5      a0    a1      d0
  1887.  
  1888.         BOOL NotifyChOwner ( struct ViNCWindow * , struct ViOwner * ,
  1889.                                                    struct ViOwner * ,
  1890.                                                    char cmd )
  1891.  
  1892.         ok = NotifyChOwner_CN ( old , new , cmd )
  1893.         d0                         a0      a1    d0
  1894.  
  1895.         BOOL NotifyChOwner_CN ( struct ViOwner * , struct ViOwner * ,
  1896.                                                    char cmd )
  1897.  
  1898.     FUNCTION
  1899.         Notifies the shell or other programs about the change of the
  1900.         foreground / background context. Prints an informative prompt
  1901.         for the user in the form of a prompt.
  1902.  
  1903.     INPUTS
  1904.         cn      -    the ViNCWindow structure.
  1905.                 MUST be locked before calling this function.
  1906.         old     -    the old foreground owner, might be NULL.
  1907.         new     -    the new owner which is about to be brought to foreground.
  1908.         cmd     -    a command character what to do with the information.
  1909.                 Currently defined are:
  1910.  
  1911.             'C'    change the foreground/background context
  1912.             'S'    set the foreground owner, old is NULL
  1913.  
  1914.     RESULTS    
  1915.         a boolean success/failure indicator.
  1916.  
  1917.     NOTES
  1918.         There are two forms of this function available. The first form
  1919.         is the "natural" library form, the second is available as a 
  1920.         stub routine in the link libraries in the archive. It automatically
  1921.         provides the window pointer which must have been set by the link
  1922.         library function SetCNWindow() before.
  1923.  
  1924.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1925.         to be modified with LockWindow() first.
  1926.  
  1927.         You usually DO NOT want to call this function. It is provided to
  1928.         allow an alternative Job control to hook in here. It is, however,
  1929.         called by the library itself in case the foreground/background
  1930.         owner changes. 
  1931.         What this procedure does is that it prints a tiny prompt, consisting
  1932.         of the name of program brought to front in case a module is loaded
  1933.         in the shell reactivated, or it just "remote types" RETURN in case
  1934.         no module is active. This should result in redisplaying the prompt
  1935.         for the shell brought to foreground.
  1936.         This routine includes also some sanety checks whether the process
  1937.         is really ready to be brought to foreground.
  1938.  
  1939.     BUGS
  1940.         The job control is somehow a hack since the original Amiga shell
  1941.         does not support such a thing. ViNCEd supports a cleaner solution
  1942.         in the form of the "medium console mode", but there is unfortunately
  1943.         not yet a shell that makes use of it.
  1944.  
  1945.     SEE ALSO
  1946.         NotifyClearScreen(), LockWindow()
  1947. vnc.library/NotifyClearScreen                    vnc.library/NotifyClearScreen
  1948.  
  1949.     NAME
  1950.         NotifyClearScreen - notify an owner about redisplaying its prompt
  1951.  
  1952.     SYNOPSIS
  1953.         ok = NotifyClearScreen ( cn )
  1954.         d0                         a5     
  1955.  
  1956.         BOOL NotifyClearScreen ( struct ViNCWindow * )
  1957.  
  1958.  
  1959.         ok = NotifyClearScreen_CN ( )
  1960.         d0                         
  1961.  
  1962.         BOOL NotifyClearScreen_CN ( VOID )
  1963.  
  1964.     FUNCTION
  1965.         Notifies the current foreground owner that the screen has been
  1966.         cleared and it should redraw its window contents.
  1967.  
  1968.     INPUTS
  1969.         cn      -    the ViNCWindow structure to take the memory from.
  1970.                 MUST be locked before calling this function.
  1971.  
  1972.     RESULTS    
  1973.         a boolean success/failure indicator.
  1974.  
  1975.     NOTES
  1976.         There are two forms of this function available. The first form
  1977.         is the "natural" library form, the second is available as a 
  1978.         stub routine in the link libraries in the archive. It automatically
  1979.         provides the window pointer which must have been set by the link
  1980.         library function SetCNWindow() before.
  1981.  
  1982.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  1983.         to be modified with LockWindow() first.
  1984.  
  1985.         You usually DO NOT want to call this function. It is provided to
  1986.         allow an alternative Job control to hook in here. It is, however,
  1987.         called by the library itself in case the user clears the screen
  1988.         and the foreground owner should redraw its window contents.
  1989.  
  1990.         The current implementation checks whether a shell is the active
  1991.         foreground owner and simulates a RETURN keypress to redisplay the
  1992.         prompt.
  1993.  
  1994.     BUGS
  1995.         The job control is somehow a hack since the original Amiga shell
  1996.         does not support such a thing. ViNCEd supports a cleaner solution
  1997.         in the form of the "medium console mode", but there is unfortunately
  1998.         not yet a shell that makes use of it.
  1999.  
  2000.         There should be really an owner paramter for this routine, but there
  2001.         isn't. The routine has to use the ActualOwner field from the
  2002.         ViNCWindow structure to find out which owner to send this message to.
  2003.  
  2004.     SEE ALSO
  2005.         NotifyChOwner(), LockWindow()
  2006. vnc.library/VNCAToI                                        vnc.library/VNCAToI
  2007.  
  2008.     NAME
  2009.         VNCAToI - convert an ASCII encoded decimal number to integer
  2010.  
  2011.     SYNOPSIS
  2012.         number = VNCAToI ( convert )
  2013.         d0                   a0
  2014.  
  2015.         LONG VNCAToI ( struct Convert * )
  2016.  
  2017.     FUNCTION
  2018.         takes a simple structure containing a character pointer and tries
  2019.         to convert the ASCII encoded decimal number into its binary
  2020.         representation. Returns the number read from the provided buffer,
  2021.         and a sucess/failure indicator as well as the pointer to the first
  2022.         character unable to convert back in the structure.
  2023.  
  2024.     INPUTS
  2025.         convert - a pointer to the following structure:
  2026.  
  2027.         struct Convert {
  2028.                 char        *cv_input;        /* input string */
  2029.                 ULONG         cv_success;    /* succes/failure indicator
  2030.                                                filled in by this routine */
  2031.         }
  2032.  
  2033.     RESULTS
  2034.         the number converted. A pointer to the first character unable to
  2035.         convert in cv_input, and a boolean success/failure indicator in
  2036.         cv_success. The number is only valid if cv_success is non-zero.
  2037.  
  2038.         Assembly language programmers will receive cv_input in the register
  2039.         a0 and cv_success in the register d1.
  2040.  
  2041.     NOTES
  2042.         This function changes automatically the number base if special
  2043.         characters in the string say so. A leading '$' or '0x' identifies
  2044.         the number as hexadecimal, 'o', 'O' or '§' identifies octal numbers,
  2045.         '%' is binary and '#' is decimal. 
  2046.  
  2047.         This routine supports integers up to +/- 2^32.
  2048.  
  2049.     SEE ALSO
  2050.         VNCHToI(), VNCStrToL()
  2051. vnc.library/VNCHToI                                        vnc.library/VNCHToI
  2052.  
  2053.     NAME
  2054.         VNCHToI - convert an ASCII encoded hex number to integer
  2055.  
  2056.     SYNOPSIS
  2057.         number = VNCHToI ( convert )
  2058.         d0                   a0
  2059.  
  2060.         LONG VNCHToI ( struct Convert * )
  2061.  
  2062.     FUNCTION
  2063.         takes a simple structure containing a character pointer and tries
  2064.         to convert the ASCII encoded hexadecimal number into its binary
  2065.         representation. Returns the number read from the provided buffer,
  2066.         and a sucess/failure indicator as well as the pointer to the first
  2067.         character unable to convert back in the structure.
  2068.  
  2069.     INPUTS
  2070.         convert - a pointer to the following structure:
  2071.  
  2072.         struct Convert {
  2073.                 char        *cv_input;        /* input string */
  2074.                 ULONG         cv_success;    /* succes/failure indicator
  2075.                                                filled in by this routine */
  2076.         }
  2077.  
  2078.     RESULTS
  2079.         the number converted. A pointer to the first character unable to
  2080.         convert in cv_input, and a boolean success/failure indicator in
  2081.         cv_success. The number is only valid if cv_success is non-zero.
  2082.  
  2083.         Assembly language programmers will receive cv_input in the register
  2084.         a0 and cv_success in the register d1.
  2085.  
  2086.     NOTES
  2087.         This function changes automatically the number base if special
  2088.         characters in the string say so. A leading '$' or '0x' identifies
  2089.         the number as hexadecimal, 'o', 'O' or '§' identifies octal numbers,
  2090.         '%' is binary and '#' is decimal. 
  2091.  
  2092.         This routine supports integers up to +/- 2^32.
  2093.  
  2094.     SEE ALSO
  2095.         VNCAToI(), VNCStrToL()
  2096. vnc.library/VNCStrToL                                    vnc.library/VNCStrToL
  2097.  
  2098.     NAME
  2099.         VNCStrToL - convert an ASCII encoded number to integer
  2100.  
  2101.     SYNOPSIS
  2102.         number = VNCStrToL ( convert , base )
  2103.         d0                     a0           d0
  2104.  
  2105.         LONG VNCStrToL ( struct Convert * , ULONG base )
  2106.  
  2107.     FUNCTION
  2108.         takes a simple structure containing a character pointer and tries
  2109.         to convert the ASCII encoded number into its binary representation. 
  2110.         Returns the number read from the provided buffer, and a 
  2111.         sucess/failure indicator as well as the pointer to the first
  2112.         character unable to convert back in the structure.
  2113.  
  2114.     INPUTS
  2115.         convert - a pointer to the following structure:
  2116.  
  2117.         struct Convert {
  2118.                 char        *cv_input;        /* input string */
  2119.                 ULONG         cv_success;    /* succes/failure indicator
  2120.                                                filled in by this routine */
  2121.         }
  2122.  
  2123.         base - the number base to use. Only accepted values are 2, 8, 10
  2124.         and 16.
  2125.  
  2126.     RESULTS
  2127.         the number converted. A pointer to the first character unable to
  2128.         convert in cv_input, and a boolean success/failure indicator in
  2129.         cv_success. The number is only valid if cv_success is non-zero.
  2130.  
  2131.         Assembly language programmers will receive cv_input in the register
  2132.         a0 and cv_success in the register d1.
  2133.  
  2134.     NOTES
  2135.         This function changes automatically the number base if special
  2136.         characters in the string say so. A leading '$' or '0x' identifies
  2137.         the number as hexadecimal, 'o', 'O' or '§' identifies octal numbers,
  2138.         '%' is binary and '#' is decimal. 
  2139.  
  2140.         This routine supports integers up to +/- 2^32.
  2141.  
  2142.     SEE ALSO
  2143.         VNCAToI(), VNCHToI()
  2144. vnc.library/VNCIToA                                        vnc.library/VNCIToA
  2145.  
  2146.     NAME
  2147.         VNCIToA - convert an integer to a decimal ASCII representation
  2148.  
  2149.     SYNOPSIS
  2150.         VNCIToA( number , buffer )
  2151.                  d0          a0
  2152.  
  2153.         VOID VNCIToA ( LONG , char * )
  2154.  
  2155.     FUNCTION
  2156.         takes a binary encoded integer number and converts it to a decimal
  2157.         ASCII representation in the buffer.
  2158.  
  2159.     INPUTS
  2160.         number     -     the number to convert.
  2161.         buffer    -    a pointer to the buffer the number should be converted
  2162.                     to. Must be at least 12 bytes long to hold even extreme
  2163.                     cases.
  2164.  
  2165.     RESULTS
  2166.  
  2167.     NOTES
  2168.         This function is signed, i.e. a minus sign will be put in front
  2169.         of negative numbers.
  2170.  
  2171.         This routine supports integers up to +/- 2^32.
  2172.  
  2173.     SEE ALSO
  2174.         VNCSPrintf()
  2175. vnc.library/VNCSPrintf                                vnc.library/VNCSprintF
  2176.  
  2177.     NAME
  2178.         VNCSPrintf - print formatted into a string
  2179.  
  2180.     SYNOPSIS
  2181.         VNCSPrintf ( buffer , stream , format )
  2182.                      a0          a1       a2
  2183.  
  2184.         VOID VNCSPrintf ( char * , char * , char * )
  2185.  
  2186.     FUNCTION
  2187.         prints characters into the string "buffer", using formatting
  2188.         information from formatstring and data from stream.
  2189.  
  2190.     INPUTS
  2191.         buffer    -    the buffer to place the output in. No range checking
  2192.                     is performed.
  2193.         stream    -    the input stream to take the numbers from. This is
  2194.                     a pointer to an "array" type structure.
  2195.         format    -    a C style format string
  2196.  
  2197.     RESULTS
  2198.  
  2199.     NOTES
  2200.         This function uses the RawDoFmt() routine of the exec library to
  2201.         format its output. This means especially that %d and %c are word 
  2202.         sized. Use the modifier "l" to make strings long sized. This might
  2203.         result in wierd-looking formatting information as %lc for characters
  2204.         if, for your compiler, int = long int.
  2205.  
  2206.     SEE ALSO
  2207.         VNCIToA(), RawDoFmt()
  2208. vnc.library/VNCStrCmp                                vnc.library/VNCStrCmp
  2209.  
  2210.     NAME
  2211.         VNCStrCmp - compare strings case insensitive
  2212.  
  2213.     SYNOPSIS
  2214.         result = VNCStrCmp ( str1 , str2 )
  2215.         d0                     a0        a1
  2216.  
  2217.         LONG VNCStrCmp ( char * , char * )
  2218.  
  2219.     FUNCTION
  2220.         compares the two string arguments. If the stings have different
  2221.         length but are otherwise identical, the shorter string is "smaller".
  2222.  
  2223.     INPUTS
  2224.         str1, str2     -    the strigs to be compared
  2225.  
  2226.     RESULTS
  2227.         <0 if str1 < str2, 
  2228.         =0 if str1 = str2 and 
  2229.         >0 if str1 > str2.
  2230.  
  2231.     NOTES
  2232.         this function is identical to the Stricmp() routine of the 
  2233.         utility library if this is available. It is therefore localized
  2234.         if the locale library is available, too.
  2235.  
  2236.         If the utility library is NOT available, ViNCEd uses its own
  2237.         function; however, this happens only in Os versios 1.2 and 1.3
  2238.         and it is likely that this support will be removed in the release
  2239.         3.70 of ViNCEd.
  2240.  
  2241.     SEE ALSO
  2242.         Stricmp(), VNCStrICmp()
  2243. vnc.library/VNCStrICmp                                vnc.library/VNCStrICmp
  2244.  
  2245.     NAME
  2246.         VNCStrCmp - compare strings case insensitive, length limited
  2247.  
  2248.     SYNOPSIS
  2249.         result = VNCStrICmp ( str1 , str2 , max )
  2250.         d0                     a0        a1       d0
  2251.  
  2252.         LONG VNCStrICmp ( char * , char * , ULONG )
  2253.  
  2254.     FUNCTION
  2255.         compares the two string arguments, up to max characters. 
  2256.         If the stings have different length but are otherwise identical, 
  2257.         the shorter string is "smaller".
  2258.  
  2259.     INPUTS
  2260.         str1, str2     -    the strigs to be compared
  2261.         max            -    the maximal number of characters to be compared
  2262.  
  2263.     RESULTS
  2264.         <0 if str1 < str2, 
  2265.         =0 if str1 = str2 and 
  2266.         >0 if str1 > str2.
  2267.  
  2268.     NOTES
  2269.         this function is identical to the Strnicmp() routine of the 
  2270.         utility library if this is available. It is therefore localized
  2271.         if the locale library is available, too.
  2272.  
  2273.         If the utility library is NOT available, ViNCEd uses its own
  2274.         function; however, this happens only in Os versios 1.2 and 1.3
  2275.         and it is likely that this support will be removed in the release
  2276.         3.70 of ViNCEd.
  2277.  
  2278.     BUGS
  2279.         this function should have been called VNCStrNCmp().
  2280.  
  2281.     SEE ALSO
  2282.         Strnicmp(), VNCStrCmp()
  2283. vnc.library/VNCToUpper                            vnc.library/VNCToUpper
  2284.  
  2285.     NAME
  2286.         VNCToUpper - convert a character to upper case.
  2287.  
  2288.     SYNOPSIS
  2289.         result = VNCToUpper ( ch )
  2290.         d0                      d0
  2291.  
  2292.         char VNCToUpper ( char )
  2293.  
  2294.     FUNCTION
  2295.         Converts the character passed in to upper case, using the locale
  2296.         database if available.
  2297.  
  2298.     INPUTS
  2299.         ch    -    the character to be set to upper case.
  2300.  
  2301.     RESULTS
  2302.         the character in upper case.
  2303.  
  2304.     NOTES
  2305.         this function is identical to the ToUpper() routine of the 
  2306.         utility library if this is available. It is therefore localized
  2307.         if the locale library is available, too.
  2308.  
  2309.         If the utility library is NOT available, ViNCEd uses its own
  2310.         function; however, this happens only in Os versios 1.2 and 1.3
  2311.         and it is likely that this support will be removed in the release
  2312.         3.70 of ViNCEd.
  2313.  
  2314.     SEE ALSO
  2315.         ToUpper()
  2316. vnc.library/ConvertWindowTitle                vnc.library/ConvertWindowTitle
  2317.  
  2318.     NAME
  2319.         ConvertWindowTitle - expand ctrl types in a window title
  2320.  
  2321.     SYNOPSIS
  2322.         ConvertWindowTitle ( cn , owner , from , to )
  2323.  
  2324.  
  2325.         VOID ConvertWindowTitle ( struct ViNCWindow * , struct ViOwner * , 
  2326.                                   char * , char * )
  2327.  
  2328.         ConvertWindowTitle_CN ( owner , from , to )
  2329.  
  2330.  
  2331.         VOID ConvertWindowTitle_CN ( struct ViOwner * , char * , char * )
  2332.  
  2333.     FUNCTION
  2334.         takes a window title like string with control sequences such
  2335.         as %n, %r or %s and expands these strings according to the
  2336.         information found in the owner structure.
  2337.  
  2338.     INPUTS
  2339.         cn    -    a pointer to the ViNCWindow main structure. MUST be locked
  2340.                 with LockWindow()
  2341.         owner -    a pointer to a struct ViOwner providing the process
  2342.                 information
  2343.         from -    source string
  2344.         to     -    destination string, must be 256 bytes large
  2345.  
  2346.     RESULTS
  2347.  
  2348.     NOTES
  2349.         There are two forms of this function available. The first form
  2350.         is the "natural" library form, the second is available as a 
  2351.         stub routine in the link libraries in the archive. It automatically
  2352.         provides the window pointer which must have been set by the link
  2353.         library function SetCNWindow() before.
  2354.  
  2355.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  2356.         to be modified with LockWindow() first.
  2357.  
  2358.         You usually DO NOT want to call this function. It is provided to
  2359.         allow an alternative window title expansion. It is, however,
  2360.         called by the library itself in case the window title must be
  2361.         refreshed.
  2362.  
  2363.         A hooked in replacement routine MUST truncate the output string
  2364.         to 256 characters (including the NUL character at the end) to
  2365.         avoid overrunning buffers. The output buffer is documented to be
  2366.         256 characters large.
  2367.  
  2368.         The current implementation reads the strings to be expanded from
  2369.         the process in the owner structure, including some sanety checks
  2370.         to make sure the process is stable. This is somehow a hack. A
  2371.         future version might provide a safer method. It should be actually
  2372.         the matter of the shell to set the window title thru an ESC 
  2373.         sequence - which is possible for ViNCEd - but it doesn't do this.
  2374.  
  2375.     SEE ALSO
  2376.         LockWindow(), the ViNCEd guide
  2377. vnc.library/FindCloseMacro                        vnc.library/FindCloseMacro
  2378.  
  2379.     NAME
  2380.         FindCloseMacro - provide the proper macro to shutdown a program
  2381.  
  2382.     SYNOPSIS
  2383.         macro = FindCloseMacro ( cn , owner )
  2384.         d0                         a5   a4
  2385.     
  2386.         char * FindCloseMacro ( struct ViNCWindow * , struct ViOwner * )
  2387.  
  2388.  
  2389.         macro = FindCloseMacro_CN ( owner )
  2390.         d0                            a4
  2391.     
  2392.         char * FindCloseMacro_CN ( struct ViOwner * )
  2393.  
  2394.     FUNCTION
  2395.         Reads the information from the owner structure and decides, whether
  2396.         a shell is running or another program is active. Selects the
  2397.         proper macro from the ViNCEd macro list and returns the macro body
  2398.         to be expanded.
  2399.  
  2400.     INPUTS
  2401.         cn    -    a ViNCEd window main structure, MUST be locked with 
  2402.                 LockWindow()
  2403.         owner -    a pointer to the owner structure to be investigated
  2404.  
  2405.     RESULTS
  2406.         a character pointer to the macro body, or NULL if no macro
  2407.         is available for this function. In this case, an EOF should be
  2408.         generated to shutdown the stream.
  2409.  
  2410.     NOTES
  2411.         There are two forms of this function available. The first form
  2412.         is the "natural" library form, the second is available as a 
  2413.         stub routine in the link libraries in the archive. It automatically
  2414.         provides the window pointer which must have been set by the link
  2415.         library function SetCNWindow() before.
  2416.  
  2417.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  2418.         to be modified with LockWindow() first.
  2419.  
  2420.         You usually DO NOT want to call this function. It is provided to
  2421.         allow an alternative job control to hook in. It is, however,
  2422.         called by the library itself in case the user pressed the close
  2423.         gadget of the window or wants to shutdown the stream otherwise.
  2424.  
  2425.         A replacement routine must make some sanity checks on the owner
  2426.         structure to make sure that the process investigated is valid and
  2427.         still active. It must return a shutdown string or NULL in case
  2428.         an EOF should be send to the owner in question.
  2429.  
  2430.         A future shell should always receive an EOF condition and send    
  2431.         the required string to the program itself, manually.
  2432.  
  2433.     SEE ALSO
  2434.         LockWindow()
  2435. vnc.library/PrintSuspend                            vnc.library/PrintSuspend
  2436.  
  2437.     NAME
  2438.         PrintSuspend - print a "job suspended message"
  2439.  
  2440.     SYNOPSIS
  2441.         PrintSuspend ( cn , port , owner )
  2442.                        a5   a0     a4
  2443.  
  2444.         VOID PrintSuspend ( struct ViNCWindow * , struct MsgPort * ,
  2445.                             struct ViOwner * )
  2446.  
  2447.         PrintSuspend_CN ( cn , port , owner )
  2448.                              a5   a0     a4
  2449.  
  2450.         VOID PrintSuspend_CN ( struct ViNCWindow * , struct MsgPort * ,
  2451.                                struct ViOwner * )
  2452.  
  2453.     FUNCTION
  2454.         Prints a " [...] suspended" message in case a suspended owner
  2455.         tries to print something to the screen. Requests a prompt from
  2456.         a running foreground shell.
  2457.  
  2458.     INPUTS
  2459.         cn      -    a pointer to the ViNCWindow structure, must be locked with
  2460.                 LockWindow() first
  2461.         port  -    a pointer to the dos message port of the process which has
  2462.                 been suspended
  2463.         owner - a pointer to the owner this process is part of
  2464.  
  2465.     RESULTS
  2466.  
  2467.     NOTES
  2468.         There are two forms of this function available. The first form
  2469.         is the "natural" library form, the second is available as a 
  2470.         stub routine in the link libraries in the archive. It automatically
  2471.         provides the window pointer which must have been set by the link
  2472.         library function SetCNWindow() before.
  2473.  
  2474.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  2475.         to be modified with LockWindow() first.
  2476.  
  2477.         You usually DO NOT want to call this function. It is provided to
  2478.         allow an alternative job control to hook in. It is, however,
  2479.         called by the library itself in case a job gets suspended and
  2480.         a suspend message has to be printed. This routine checks whether
  2481.         a shell or a program is active in this window, and prints the
  2482.         suspend message only if it's a shell. A press to RETURN is simulated
  2483.         in this case to request a shell prompt again.
  2484.  
  2485.         A replacement routine must make some sanity checks on the owner
  2486.         structure to make sure that the process investigated is valid and
  2487.         still active. 
  2488.  
  2489.         A future shell should print this message itself.
  2490.  
  2491.     SEE ALSO
  2492.         LockWindow()
  2493. vnc.library/QueueOwnerLine                            vnc.library/QueueOwnerLine
  2494.  
  2495.     NAME
  2496.         QueueOwnerLine    -    add inputs to a ViNCEd owner
  2497.  
  2498.     SYNOPSIS
  2499.         ok = QueueOwnerLine ( cn , owner , buffer , size )
  2500.         d0                      a5   a4       a0        d0
  2501.  
  2502.         BOOL QueueOwnerLine ( struct ViNCWindow * , struct ViOwner ,
  2503.                               char * buffer, UWORD size )
  2504.  
  2505.         ok = QueueOwnerLine_CN ( owner , buffer , size )
  2506.         d0                         a4         a0          d0
  2507.  
  2508.         BOOL QueueOwnerLine_CN ( struct ViOwner ,
  2509.                                  char * buffer, UWORD size )
  2510.  
  2511.     FUNCTION
  2512.         This queues an input line into the output buffer of the given
  2513.         owner. The data will be not made visible on the screen.
  2514.         THIS IS A LOW-LEVEL FUNCTION. YOU DO NOT WANT TO CALL IT.
  2515.         USE THE DOS PACKET ACTION_QUEUE INSTEAD.
  2516.         The only reason to call this function from are replacement
  2517.         routines that patch into the ViNCEd job control functions and
  2518.         others.
  2519.  
  2520.     INPUTS
  2521.         cn        -    a pointer to the ViNCWindow main structure, MUST be
  2522.                     locked with LockWindow().
  2523.         owner    -    a pointer to the owner which should receive the data.
  2524.  
  2525.         buffer    -    the data to be placed into its input buffer. The buffer
  2526.                     may be released afterwards or can be even kept on the
  2527.                     stack.
  2528.         size    -    the size of the data.
  2529.  
  2530.     RESULTS
  2531.         a boolean success/failure code.
  2532.  
  2533.     NOTES
  2534.         There are two forms of this function available. The first form
  2535.         is the "natural" library form, the second is available as a 
  2536.         stub routine in the link libraries in the archive. It automatically
  2537.         provides the window pointer which must have been set by the link
  2538.         library function SetCNWindow() before.
  2539.  
  2540.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  2541.         to be modified with LockWindow() first.
  2542.  
  2543.         DO NOT CALL THIS FUNCTION unless you patched into one of the ViNCEd
  2544.         job control etc. functions and MUST use this mechanism instead of
  2545.         sending a DOS packet. This function is identical to the ACTION_QUEUE
  2546.         dos packet, which should clearly be preferred.
  2547.  
  2548.     SEE ALSO
  2549.         LockWindow()
  2550. vnc.library/PutLineData                                vnc.library/PutLineData
  2551.  
  2552.     NAME
  2553.         PutLineData - print data to the screen over an owner.
  2554.  
  2555.     SYNOPSIS
  2556.         size = PutLineData ( cn , owner , buffer , size )
  2557.         d0                     a5   a4      a0       d0
  2558.  
  2559.         ULONG PutLineData ( struct ViNCWindow * , struct ViOwner ,
  2560.                             char * buffer, ULONG size )
  2561.  
  2562.         ok = PutLineData_CN ( owner , buffer , size )
  2563.         d0                      a4      a0       d0
  2564.  
  2565.         ULONG PutLineData_CN ( struct ViOwner ,
  2566.                                  char * buffer, ULONG size )
  2567.  
  2568.     FUNCTION
  2569.         This function prints out strings as if they have been written
  2570.         thru the dos function Write() - in fact, this is the low-level
  2571.         routine called if ViNCEd receivces an ACTION_WRITE, even though
  2572.         it is NOT called thru this interface.
  2573.         THIS IS A LOW-LEVEL FUNCTION. YOU DO NOT WANT TO CALL IT.
  2574.         USE THE DOS PACKET ACTION_WRITE INSTEAD.
  2575.         The only reason to call this function from are replacement
  2576.         routines that patch into the ViNCEd job control functions and
  2577.         others.
  2578.  
  2579.     INPUTS
  2580.         cn        -    a pointer to the ViNCWindow main structure, MUST be
  2581.                     locked with LockWindow().
  2582.         owner    -    a pointer to the owner which should receive the data.
  2583.                     Must be given since some CSI sequences are owner
  2584.                     specific.
  2585.         buffer    -    the data to be written; may contain all ViNCEd
  2586.                     ESC/CSI sequences.
  2587.         size    -    the size of the data.
  2588.  
  2589.     RESULTS
  2590.         the number of characters written.
  2591.  
  2592.     NOTES
  2593.         There are two forms of this function available. The first form
  2594.         is the "natural" library form, the second is available as a 
  2595.         stub routine in the link libraries in the archive. It automatically
  2596.         provides the window pointer which must have been set by the link
  2597.         library function SetCNWindow() before.
  2598.  
  2599.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  2600.         to be modified with LockWindow() first.
  2601.  
  2602.         DO NOT CALL THIS FUNCTION unless you patched into one of the ViNCEd
  2603.         job control etc. functions and MUST use this mechanism instead of
  2604.         sending a DOS packet. This function is identical to the ACTION_WRITE
  2605.         dos packet, which should clearly be preferred.
  2606.  
  2607.     SEE ALSO
  2608.         LockWindow()
  2609. vnc.library/SendAsyncPacket                        vnc.library/SendAsyncPacket
  2610.  
  2611.     NAME
  2612.         SendAsyncPacket    -    send a ViNCEd packet asynchronously.
  2613.  
  2614.     SYNOPSIS
  2615.         ok = SendAsyncPacket ( file , type , arg1 , data , size )
  2616.         d0                       d1      d2     a1        a0       d0
  2617.  
  2618.         LONG SendAsyncPacket ( BPTR , ULONG , void * , void * , ULONG )
  2619.  
  2620.     FUNCTION
  2621.         Builds an async type packet and allocated memory for a buffer,
  2622.         copies the data into this buffer and sends the packet to ViNCEd.
  2623.         Returns immediately and does not wait for completion of the packet.
  2624.  
  2625.     INPUTS
  2626.         file    -    a BPTR to the file handle for communication
  2627.         type    -    the type of the packet to sent, e.g. ACTION_WRITE
  2628.         arg1    -    the first argument to be placed into the arg1
  2629.                     parameter of the Packet structure.
  2630.         data    -    will be copied into a buffer and filled into the
  2631.                     arg2 pointer of the packet. Since the data is
  2632.                     copied, you may release the buffer immediately after
  2633.                     calling this function
  2634.         size    -    the number of bytes in this buffer. Will be copied to
  2635.                     arg3 of the packet.
  2636.  
  2637.     RESULTS
  2638.         DOSTRUE in case the packet could be delivered to ViNCEd. This DOES        
  2639.         NOT mean that ViNCEd accepted this packet properly. DOSFALSE in
  2640.         case of failure.
  2641.     
  2642.     NOTES
  2643.         This is the asynchronous packet interface of ViNCEd. DO NOT try
  2644.         to roll your own async packets, use this one or AllocAsyncPacket()
  2645.         instead.
  2646.  
  2647.         This call is optimized to work for most packets requiring a buffer
  2648.         and a count, as ACTION_WRITE, ACTION_QUEUE, ACTION_PUSH, 
  2649.         ACTION_SETLINE and others. Consult the ViNCEd guide for details.
  2650.  
  2651.         It is intrinsic to this method that you don't receive a success
  2652.         failure indicator for the packet send. ViNCEd will deallocate all
  2653.         buffers and the packet itself, and won't reply it at all. If
  2654.         a reply code is required, build a standard packet yourself and
  2655.         send to the owner port using PutMsg(), then continously call
  2656.         GetMsg() on your reply port for the return of this packet, as it
  2657.         works for all other handlers. You should, however, make sure that
  2658.         you send packets to the port in the file handle you received, i.e.
  2659.         filehandle -> fh_Type (NOT fh_Port, this is a bug in the dos.library
  2660.         documentation). DO NOT send packets to the port in the global DOS
  2661.         device list or to any other port. The proper port IS REQUIRED to
  2662.         identify the owner this packet comes from.
  2663.  
  2664.     SEE ALSO
  2665.         AllocAsyncPacket(), DoPkt(), VNCDoPacket(), dos/dosextens.h,
  2666.         the ViNCEd guide for the list of packets accepted.
  2667. vnc.library/AllocAsyncPacket                    vnc.library/AllocAsyncPacket
  2668.  
  2669.     NAME
  2670.         AllocAsyncPacket - build a packet for asynchronous shipment
  2671.  
  2672.     SYNOPSIS
  2673.         stdpkt = AllocAsyncPacket ( file , size )
  2674.         d0                            d1       d0
  2675.  
  2676.         struct StandardPacket * AllocAsyncPacket ( BPTR , ULONG )
  2677.  
  2678.     FUNCTION
  2679.         Builds an async packet for asynchronous communication with
  2680.         ViNCEd.
  2681.  
  2682.     INPUTS
  2683.         file    -    a BPTR to the file handle for communication
  2684.         size    -    size of an additional data packet to be allocated
  2685.                     with the packet. This does not include the size of
  2686.                     the packet itself.
  2687.  
  2688.     RESULTS
  2689.         a struct StandardPacket or NULL in case of failure.
  2690.     
  2691.     NOTES
  2692.         This builds an asynchronous packet. If size is larger than 
  2693.         zero, (stdkt + 1) points to a buffer for free use. 
  2694.  
  2695.         Fill in all data as usual, BUT SET BIT 31 OF THE dp_type FIELD.
  2696.         This identifies an asynchronous packet. Then PutMsg() this packet
  2697.         to the owner port of ViNCEd and forget about it. ViNCEd will not
  2698.         reply it, and will deallocate the packet and the buffer after-
  2699.         wards.
  2700.  
  2701.         If a reply code is required, build a standard packet yourself and
  2702.         send to the owner port using PutMsg(), then continously call
  2703.         GetMsg() on your reply port for the return of this packet, as it
  2704.         works for all other handlers. You should, however, make sure that
  2705.         you send packets to the port in the file handle you received, i.e.
  2706.         filehandle -> fh_Type (NOT fh_Port, this is a bug in the dos.library
  2707.         documentation). DO NOT send packets to the port in the global DOS
  2708.         device list or to any other port. The proper port IS REQUIRED to
  2709.         identify the owner this packet comes from.
  2710.  
  2711.     SEE ALSO
  2712.         SendAsyncPacket(), DoPkt(), VNCDoPacket(), dos/dosextens.h,
  2713.         the ViNCEd guide for the list of packets accepted.
  2714. vnc.library/VNCDoPacket                                vnc.library/VNCDoPacket
  2715.  
  2716.     NAME
  2717.         VNCDoPacket    - send a dos packet synchronously.
  2718.  
  2719.     SYNOPSIS
  2720.         res1 = VNCDoPacket ( type , arg1 , arg2 , arg3 , arg4 , arg5 ,
  2721.         d0                     d0        d1       d2      d3     d4        d5
  2722.  
  2723.                                     arg6 , arg7 , port )
  2724.                                     d6     d7     a0
  2725.  
  2726.         LONG VNCDoPacket ( LONG , LONG , LONG , LONG , LONG , LONG ,
  2727.                                   LONG , LONG , struct MsgPort * )
  2728.  
  2729.     FUNCTION
  2730.         Build and send a packet to a given message port, synchronously.
  2731.  
  2732.     RESULTS
  2733.         The primary result code of the packet. The secondary result code
  2734.         can be obtained by IoErr().
  2735.  
  2736.     NOTES
  2737.         This call is almost identical to DoPkt() of the dos library except
  2738.         that a more useful register layout is available and, therefore, all
  2739.         packet parameters can be defined.
  2740.  
  2741.         This function is mainly here for pre 2.0 programs where no DoPkt()
  2742.         function of the dos.library was available. However, feel prepared
  2743.         that the Os 1.2/1.3 compatibility of ViNCEd will be removed in
  2744.         release 3.70 (even though this function will stay here).
  2745.     
  2746.     SEE ALSO
  2747.         SendAsyncPacket(), DoPkt()
  2748. vnc.library/Foreground                                vnc.library/Foreground
  2749.  
  2750.     NAME
  2751.         Foreground - put the owner of a stream to foreground
  2752.  
  2753.     SYNOPSIS
  2754.         ok = Foreground ( flags , file )
  2755.         d0                  d0      d1
  2756.         
  2757.         LONG Foreground ( ULONG , BPTR )
  2758.  
  2759.     FUNCTION
  2760.         Sends the owner associated to the dos stream to foreground mode.
  2761.         Even though this is an asynchronous call, all packets send to
  2762.         ViNCEd after this call will reach the owner in foreground mode.
  2763.  
  2764.     INPUTS
  2765.         flags    -    flags for the call. Currently, no flags are defined
  2766.                     and this MUST be set to zero.
  2767.         file    -    a file handle to a ViNCEd stream.
  2768.  
  2769.     RESULTS
  2770.         DOSTRUE if successful, DOSFALSE on failure.
  2771.  
  2772.     NOTES
  2773.         There is no guarantee that your owner will stay in foreground
  2774.         if this is called.
  2775.  
  2776.         This function should usually be called from a shell only, but
  2777.         the current AmigaDos shell doesn't support job control.
  2778.  
  2779.     SEE ALSO
  2780.         Background()
  2781. vnc.library/Background                                vnc.library/Background
  2782.  
  2783.     NAME
  2784.         Background - put the owner of a stream to background
  2785.  
  2786.     SYNOPSIS
  2787.         ok = Background ( flags , file )
  2788.         d0                  d0      d1
  2789.         
  2790.         LONG Background ( ULONG , BPTR )
  2791.  
  2792.     FUNCTION
  2793.         Sends the owner associated to the dos stream to background mode.
  2794.         Even though this is an asynchronous call, all packets send to
  2795.         ViNCEd after this call will reach the owner in background mode.
  2796.  
  2797.     INPUTS
  2798.         flags    -    flags for the call. Since if the given owner is send
  2799.                     to background, something else has to go to foreground.
  2800.                     This is defined by the following flag:
  2801.             
  2802.         #define VINBF_SHELLONLY_BIT        0L
  2803.         #define VINBF_SHELLONLY_MASK    (1<<0L)
  2804.  
  2805.         Send only waiting shells to foreground. If not set, all owners
  2806.         are considered.
  2807.  
  2808.         file    -    a file handle to a ViNCEd stream.
  2809.  
  2810.     RESULTS
  2811.         DOSTRUE if successful, DOSFALSE on failure.
  2812.  
  2813.     NOTES
  2814.         There is no guarantee that your owner will stay in background
  2815.         if this is called.
  2816.  
  2817.         This function should usually be called from a shell only, but
  2818.         the current AmigaDos shell doesn't support job control.
  2819.  
  2820.     SEE ALSO
  2821.         Foreground()
  2822. vnc.library/ConvertString                            vnc.library/ConvertString
  2823.  
  2824.     NAME
  2825.         ConvertString - expand a macro body completely
  2826.  
  2827.     SYNOPSIS
  2828.         ok = ConvertString ( cn , from , to )
  2829.         d0                     a5      a0     a1
  2830.  
  2831.         BOOL ConvertString ( struct ViNCWindow * , char * , char * )
  2832.  
  2833.         ok = ConvertString_CN ( from , to )
  2834.         d0                        a0       a1
  2835.  
  2836.         BOOL ConvertString_CN ( char * , char * )
  2837.  
  2838.     FUNCTION
  2839.         Expands all backslash and bracket sequences in a macro body to
  2840.         a full string.
  2841.  
  2842.     INPUTS
  2843.         cn      -    a struct ViNCWindow pointer to the main window this macro
  2844.                  came from. Need not to be locked with LockWindow().
  2845.         from -    source string.
  2846.         to     -    destination string. MUST be 256 characters large.
  2847.  
  2848.     RESULTS
  2849.         a boolean success/failure indicator.
  2850.  
  2851.     NOTES
  2852.         There are two forms of this function available. The first form
  2853.         is the "natural" library form, the second is available as a 
  2854.         stub routine in the link libraries in the archive. It automatically
  2855.         provides the window pointer which must have been set by the link
  2856.         library function SetCNWindow() before.
  2857.  
  2858.         You usually DO NOT want to call this function. It is provided to
  2859.         allow an alternative macro expansion to hook in. It is, however,
  2860.         called by the library itself in case a macro body must be expanded.
  2861.  
  2862.         This function has a somewhat different job than 
  2863.         SendRequestPattern(). This routine has to do the actual conversion,
  2864.         whereas SendRequestPattern() has to deliver a request to an 
  2865.         external task for conversion.
  2866.         ViNCEd will call this function directly in case the macro body
  2867.         has no special characters in it, or will pass it to an external
  2868.         host with SendRequestPattern() in case it can't do the job alone,
  2869.         for example if a file requester has to be build.
  2870.  
  2871.     SEE ALSO
  2872.         SendRequestPattern()
  2873. vnc.library/PoolCreateExtIO                        vnc.library/PoolCreateExtIO
  2874.  
  2875.     NAME
  2876.         PoolCreateExtIO - build an IORequest from the editor memory pool
  2877.  
  2878.     SYNOPSIS
  2879.         io = PoolCreateExtIO ( cn , port , size )
  2880.         d0                       a5    a1       d0
  2881.  
  2882.         struct IORequest * PoolCreateExtIO ( struct ViNCWindow * ,
  2883.                                              struct MsgPort * , UWORD size )
  2884.  
  2885.         io = PoolCreateExtIO_CN ( port , size )
  2886.         d0                          a1     d0
  2887.  
  2888.         struct IORequest * PoolCreateExtIO_CN ( struct MsgPort * , 
  2889.                                                 UWORD size )
  2890.  
  2891.     FUNCTION
  2892.         Build an IORequest structure of the given size for communication
  2893.         thru the given port. Almost identically to the amiga.lib
  2894.         CreateExtIO() except that the memory for the structure is taken
  2895.         from the ViNCEd memory pool.
  2896.         If the handler process quits, the memory will be given back, but    
  2897.         THE IOREQUEST WILL NOT BE ABORTED. This is still up to you. You
  2898.         still MUST call PoolDeleteExtIO() to get rid of it.
  2899.  
  2900.     INPUTS
  2901.         cn    -    a pointer to the struct ViNCWindow the memory has to be
  2902.                 taken from. MUST be locked before this function is
  2903.                 called.
  2904.         port -    the reply port for this IORequest
  2905.         size -    the size of the IORequest, e.g. sizeof(struct timerequest)
  2906.  
  2907.     RESULTS
  2908.         a pointer to an initialized IORequest structure or NULL on failure.
  2909.  
  2910.     NOTES
  2911.         There are two forms of this function available. The first form
  2912.         is the "natural" library form, the second is available as a 
  2913.         stub routine in the link libraries in the archive. It automatically
  2914.         provides the window pointer which must have been set by the link
  2915.         library function SetCNWindow() before.
  2916.  
  2917.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  2918.         to be modified with LockWindow() first.
  2919.  
  2920.         If the handler process quits, the memory will be given back, but    
  2921.         THE IOREQUEST WILL NOT BE ABORTED. This is still up to you. You
  2922.         still MUST call PoolDeleteExtIO() to get rid of it.
  2923.     
  2924.     SEE ALSO
  2925.         PoolCreateStdIO(), PoolDeleteExtIO(), CreateExtIO(), 
  2926.         CreateIORequest(), exec/io.h
  2927. vnc.library/PoolCreateStdIO                        vnc.library/PoolCreateStdIO
  2928.  
  2929.     NAME
  2930.         PoolCreateStdIO - build an IORequest from the editor memory pool
  2931.  
  2932.     SYNOPSIS
  2933.         io = PoolCreateStdIO ( cn , port )
  2934.         d0                       a5    a1
  2935.  
  2936.         struct IOStdReq * PoolCreateStdIO ( struct ViNCWindow * ,
  2937.                                              struct MsgPort * )
  2938.  
  2939.         io = PoolCreateStdIO_CN ( port )
  2940.         d0                          a1
  2941.  
  2942.         struct IOStdReq * PoolCreateStdIO_CN ( struct MsgPort * )
  2943.  
  2944.     FUNCTION
  2945.         Build an IOStdReq structure of the given size for communication
  2946.         thru the given port. Almost identically to the amiga.lib
  2947.         CreateStdIO() except that the memory for the structure is taken
  2948.         from the ViNCEd memory pool.
  2949.         If the handler process quits, the memory will be given back, but    
  2950.         THE IOSTDREQ WILL NOT BE ABORTED. This is still up to you. You
  2951.         still MUST call PoolDeleteStdIO() to get rid of it.
  2952.  
  2953.     INPUTS
  2954.         cn    -    a pointer to the struct ViNCWindow the memory has to be
  2955.                 taken from. MUST be locked before this function is
  2956.                 called.
  2957.         port -    the reply port for this IOStdReq.
  2958.  
  2959.     RESULTS
  2960.         a pointer to an initialized IORequest structure or NULL on failure.
  2961.  
  2962.     NOTES
  2963.         There are two forms of this function available. The first form
  2964.         is the "natural" library form, the second is available as a 
  2965.         stub routine in the link libraries in the archive. It automatically
  2966.         provides the window pointer which must have been set by the link
  2967.         library function SetCNWindow() before.
  2968.  
  2969.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  2970.         to be modified with LockWindow() first.
  2971.  
  2972.         If the handler process quits, the memory will be given back, but    
  2973.         THE IOREQUEST WILL NOT BE ABORTED. This is still up to you. You
  2974.         still MUST call PoolDeleteStdIO() to get rid of it.
  2975.  
  2976.         This function is identical to PoolCreateExtIO() except that the
  2977.         size parameter is always set to sizeof(struct IOStdReq).
  2978.     
  2979.     SEE ALSO
  2980.         PoolCreateExtIO(), PoolDeleteStdIO(), CreateStdIO(), 
  2981.         CreateIORequest(), exec/io.h
  2982. vnc.library/PoolDeleteExtIO                        vnc.library/PoolDeleteExtIO
  2983.  
  2984.     NAME
  2985.         PoolDeleteExtIO - delete an IORequest structure
  2986.  
  2987.     SYNOPSIS
  2988.         PoolDeleteExtIO ( cn , io )
  2989.                            a5   a1
  2990.  
  2991.         VOID PoolDeleteExtIO ( struct ViNCWindow * , struct IORequest * )
  2992.  
  2993.  
  2994.         PoolDeleteExtIO_CN ( io )
  2995.                              a1
  2996.  
  2997.         VOID PoolDeleteExtIO_CN ( struct IORequest * )
  2998.  
  2999.     FUNCTION
  3000.         Deallocate and release a previously build struct IORequest from 
  3001.         PoolCreateExtIO(). Almost identically to the amiga.lib
  3002.         DeleteExtIO() except that this call uses the ViNCEd memory pool.
  3003.         THE IOSTDREQ WILL NOT BE ABORTED. This is still up to you.
  3004.  
  3005.     INPUTS
  3006.         cn    -    a pointer to the struct ViNCWindow the memory has to be
  3007.                 taken from. MUST be locked before this function is
  3008.                 called.
  3009.         io  -    a pointer to a struct IORequest allocated with 
  3010.                 PoolCreateExtIO() before.
  3011.  
  3012.     RESULTS
  3013.  
  3014.     NOTES
  3015.         There are two forms of this function available. The first form
  3016.         is the "natural" library form, the second is available as a 
  3017.         stub routine in the link libraries in the archive. It automatically
  3018.         provides the window pointer which must have been set by the link
  3019.         library function SetCNWindow() before.
  3020.  
  3021.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  3022.         to be modified with LockWindow() first.
  3023.  
  3024.     SEE ALSO
  3025.         PoolCreateExtIO(), PoolDeleteStdIO(), DeleteStdIO(), 
  3026.         DeleteIORequest(), exec/io.h
  3027. vnc.library/PoolDeleteStdIO                        vnc.library/PoolDeleteStdIO
  3028.  
  3029.     NAME
  3030.         PoolDeleteStdIO - delete an IOStdReq structure
  3031.  
  3032.     SYNOPSIS
  3033.         PoolDeleteStdIO ( cn , io )
  3034.                            a5   a1
  3035.  
  3036.         VOID PoolDeleteStdIO ( struct ViNCWindow * , struct IORequest * )
  3037.  
  3038.  
  3039.         PoolDeleteStdIO_CN ( io )
  3040.                              a1
  3041.  
  3042.         VOID PoolDeleteStdIO_CN ( struct IORequest * )
  3043.  
  3044.     FUNCTION
  3045.         Deallocate and release a previously build struct IOStdReq from 
  3046.         PoolCreateStdIO(). Almost identically to the amiga.lib
  3047.         DeleteStdIO() except that this call uses the ViNCEd memory pool.
  3048.         THE IOSTDREQ WILL NOT BE ABORTED. This is still up to you.
  3049.  
  3050.     INPUTS
  3051.         cn    -    a pointer to the struct ViNCWindow the memory has to be
  3052.                 taken from. MUST be locked before this function is
  3053.                 called.
  3054.         io  -    a pointer to a struct IORequest allocated with 
  3055.                 PoolCreateStdIO() before.
  3056.  
  3057.     RESULTS
  3058.  
  3059.     NOTES
  3060.         There are two forms of this function available. The first form
  3061.         is the "natural" library form, the second is available as a 
  3062.         stub routine in the link libraries in the archive. It automatically
  3063.         provides the window pointer which must have been set by the link
  3064.         library function SetCNWindow() before.
  3065.  
  3066.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  3067.         to be modified with LockWindow() first.
  3068.  
  3069.         This function is currently identical to PoolDeleteExtIO().
  3070.  
  3071.     SEE ALSO
  3072.         PoolCreateExtIO(), PoolDeleteStdIO(), DeleteExtIO(), 
  3073.         DeleteIORequest(), exec/io.h
  3074. vnc.library/PoolCreatePort                            vnc.library/PoolCreatePort
  3075.  
  3076.     NAME
  3077.         PoolCreatePort - build a message port from the ViNCEd memory pool.
  3078.  
  3079.     SYNOPSIS
  3080.         msgport = PoolCreatePort ( cn , name , pri )
  3081.         d0                           a5    a0       d0
  3082.  
  3083.         struct MsgPort * PoolCreatePort ( struct ViNCWindow * , 
  3084.                                           char * , BYTE )
  3085.  
  3086.         msgport = PoolCreatePort_CN ( name , pri )
  3087.         d0                                 a0     d0
  3088.  
  3089.         struct MsgPort * PoolCreatePort_CN ( char * , BYTE )
  3090.  
  3091.     FUNCTION
  3092.         Builds a message port from the ViNCEd memory pool of the given
  3093.         priority and name, and if the name paramter is non-NULL, add
  3094.         this pool to the database of the public ports.
  3095.  
  3096.     INPUTS
  3097.         cn    -    a pointer to the struct ViNCWindow * to take the memory
  3098.                 from. MUST be locked with LockWindow() before.
  3099.         name -    a name parameter. If non-NULL, the port will be added to
  3100.                 the public port list. The name itself will not be copied,
  3101.                 you've to keep it constant for the lifetime of the port.
  3102.         pri -    a priority for the port. It will be enqueued according
  3103.                 to this priority into the public port list if the name
  3104.                 parameter is non-NULL.
  3105.  
  3106.     RESULTS
  3107.         a pointer to an initialized and ready-to-use port structure, or
  3108.         NULL on failure. If name is non-NULL, this port will have been
  3109.         added to the public port list.
  3110.  
  3111.     NOTES
  3112.         There are two forms of this function available. The first form
  3113.         is the "natural" library form, the second is available as a 
  3114.         stub routine in the link libraries in the archive. It automatically
  3115.         provides the window pointer which must have been set by the link
  3116.         library function SetCNWindow() before.
  3117.  
  3118.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  3119.         to be modified with LockWindow() first.
  3120.  
  3121.         Even though the memory for the port is taken from the ViNCEd memory
  3122.         pool and is therefore released when the handler process shuts down,
  3123.         this does not mean that the port is removed from the public port
  3124.         list or the signal bit of this port is released at this time. You
  3125.         STILL have to call PoolDeletePort() to get rid of this port, and
  3126.         the signal bit allocated for this port. 
  3127.  
  3128.         The name of the port will not be copied. If you want to place this
  3129.         in the memory pool, too, then use AllocEdMem() to allocate
  3130.         ViNCEd memory for it and copy the name over manually. However, it's
  3131.         in most cases good enough just to keep the name valid for the
  3132.         lifetime of the port.
  3133.  
  3134.     SEE ALSO
  3135.         PoolDeletePort(), CreatePort(), CreateMsgPort(), exec/ports.h
  3136. vnc.library/PoolDeletePort                        vnc.library/PoolDeletePort
  3137.  
  3138.     NAME
  3139.         PoolDeletePort - dispose a message port of the ViNCEd memory pool.
  3140.  
  3141.     SYNOPSIS
  3142.         PoolDeletePort ( cn , port )
  3143.                          a5      a1
  3144.  
  3145.         VOID PoolDeletePort ( struct ViNCWindow * , struct MsgPort * )
  3146.  
  3147.         PoolDeletePort_CN ( port )
  3148.                             a1
  3149.  
  3150.         VOID PoolDeletePort_CN ( struct MsgPort * )
  3151.  
  3152.     FUNCTION
  3153.         Deletes a message port from the ViNCEd memory pool previously
  3154.         created with PoolCreatePort(). Removes the message port from
  3155.         the public port list if the port has a non-NULL name, and de-
  3156.         allocated the signal bit allocated for the port.
  3157.  
  3158.     INPUTS
  3159.         cn    -    a pointer to the struct ViNCWindow * to take the memory
  3160.                 from. MUST be locked with LockWindow() before.
  3161.         port -    the pointer to the message port to be released. MUST have
  3162.                 been allocated with PoolCreatePort() before.
  3163.  
  3164.     RESULTS
  3165.  
  3166.     NOTES
  3167.         There are two forms of this function available. The first form
  3168.         is the "natural" library form, the second is available as a 
  3169.         stub routine in the link libraries in the archive. It automatically
  3170.         provides the window pointer which must have been set by the link
  3171.         library function SetCNWindow() before.
  3172.  
  3173.         It is VERY IMPORTANT that you accessed control to the ViNCEd window
  3174.         to be modified with LockWindow() first.
  3175.  
  3176.         Even though the memory for the port is taken from the ViNCEd memory
  3177.         pool and is therefore released when the handler process shuts down,
  3178.         this does not mean that the port is removed from the public port
  3179.         list or the signal bit of this port is released at this time. You
  3180.         STILL have to call PoolDeletePort() to get rid of this port, and
  3181.         the signal bit allocated for this port. 
  3182.  
  3183.         The port will be removed from the public port list if the name
  3184.         field of the port structure is non-NULL.
  3185.  
  3186.     SEE ALSO
  3187.         PoolCreatePort(), DeletePort(), DeleteMsgPort(), exec/ports.h
  3188. vnc.library/VNCFOpen                                    vnc.library/VNCFOpen
  3189.  
  3190.     NAME
  3191.         VNCFOpen - open a buffered stream
  3192.  
  3193.     SYNOPSIS
  3194.         file = VNCFOpen ( name , flags , bufsize )
  3195.         d0                  a0     d0         d1
  3196.  
  3197.         FileHandle * VNCFOpen ( char * , UBYTE , UWORD )
  3198.  
  3199.     FUNCTION
  3200.         Open a file for buffered I/O.
  3201.  
  3202.     INPUTS
  3203.         name    -    filename of the file to open
  3204.         flags    -    the access mode of the file. The following flags can
  3205.                     be set:
  3206.  
  3207.         #define FHMOD_APPEND (1<<0)             /* append to end of file */
  3208.         #define FHMOD_READ (1<<2)               /* open for reading */
  3209.         #define FHMOD_WRITE (1<<3)              /* open for writing */
  3210.         #define FHMOD_RECORD (1<<6)             /* record-oriented IO */
  3211.         #define FHMOD_NONUL (1<<7)              /* don't write NULs on record IO */
  3212.  
  3213.         bufsize -    the size of the I/O buffer
  3214.  
  3215.     RESULTS
  3216.         a pointer to a filehandle. This is NOT a Dos type file handle, but
  3217.         a ViNCEd specific structure. It looks like this:
  3218.  
  3219.         typedef  struct {
  3220.             BPTR fh_DOSHandle;              /* BPTR to DOS file structure */
  3221.             void *fh_Buffer;                /* buffer itself */
  3222.             UWORD fh_BufferLength;          /* its length */
  3223.             UWORD fh_BufferContents;        /* # of valid bytes */
  3224.             UWORD fh_BufferPos;             /* pos of fileptr in buffer */
  3225.             UWORD fh_DOSOffset;             /* offset of buffer in total */
  3226.             UBYTE fh_Mode;                  /* open mode, see above */
  3227.             UBYTE fh_Flags;                 /* additional flags, internal */
  3228.             char fh_RecordSep1;             /* record seperator, as LF or NUL */
  3229.             char fh_RecordSep2;             /* a second one... */
  3230.             ULONG fh_FilePointer;           /* absolute position in file */
  3231.         } FileHandle;  
  3232.  
  3233.     NOTES
  3234.         The ViNCEd buffered I/O functions are more advanced than the DOS
  3235.         buffered I/O. First, the size of the buffer is adjustable.
  3236.         Second, the functions do not inherit some BCPL illnesses and are
  3237.         therefore faster. Third, they are more flexible. Flipping between
  3238.         reading, writing and seeking does no longer require a buffer flush.
  3239.         They provide a record oriented I/O with a configurable record field
  3240.         separator.
  3241.     
  3242.     SEE ALSO
  3243.         VNCFClose(), Open(), vnc/io.h
  3244. vnc.library/VNCFClose                                    vnc.library/VNCFClose
  3245.  
  3246.     NAME
  3247.         VNCFClose - close a buffered stream
  3248.  
  3249.     SYNOPSIS
  3250.         ok = VNCFClose ( file )
  3251.         d0                 a0
  3252.  
  3253.         BOOL VNCFClose ( FileHandle * )
  3254.  
  3255.     FUNCTION
  3256.         Close a buffered stream.
  3257.  
  3258.     INPUTS
  3259.         file    -    the filehandle to close. NOT a DOS FileHandle.
  3260.  
  3261.     RESULTS
  3262.         a boolean success failure indicator. There's currently not much
  3263.         that can be done in case of a failure. While it is not "safe" to
  3264.         ignore the return code, there's not much more you can do in that
  3265.         case.
  3266.  
  3267.     NOTES
  3268.  
  3269.     BUGS
  3270.         there's nothing that can be done in case of a failure. Same goes
  3271.         btw. for the Close() function of the DOS library.        
  3272.     
  3273.     SEE ALSO
  3274.         VNCFOpen(), Close(), vnc/io.h
  3275. vnc.library/VNCFRead                                    vnc.library/VNCFRead
  3276.  
  3277.     NAME
  3278.         VNCFRead - read buffered from a stream
  3279.  
  3280.     SYNOPSIS
  3281.         bytes = VNCFRead ( file , buffer , size )
  3282.         d0                   a0      a1       d1
  3283.  
  3284.         LONG VNCFRead ( FileHandle * , void * , ULONG )
  3285.  
  3286.     FUNCTION
  3287.         Read the specified number of bytes from the stream to the buffer.
  3288.  
  3289.     INPUTS
  3290.         file    -    the filehandle to read from. NOT a DOS FileHandle.
  3291.         buffer    -    the buffer to read to.
  3292.         size    -    the number of bytes to read. In record I/O, the
  3293.                     maximal number of characters to read, the function
  3294.                     will stop reading as soon as a record separator is
  3295.                     found.
  3296.  
  3297.     RESULTS
  3298.         the number of bytes read, or -1 in case of a failure.
  3299.  
  3300.     NOTES
  3301.         the buffer size is passed in d1, not in d0.
  3302.  
  3303.     SEE ALSO
  3304.         VNCFOpen(), VNCFWrite(), Read(), vnc/io.h
  3305. vnc.library/VNCFWrite                                    vnc.library/VNCFWrite
  3306.  
  3307.     NAME
  3308.         VNCFWrite -write buffered to a stream
  3309.  
  3310.     SYNOPSIS
  3311.         bytes = VNCFWrite ( file , buffer , size )
  3312.         d0                     a0      a1       d1
  3313.  
  3314.         LONG VNCFWrite ( FileHandle * , void * , ULONG )
  3315.  
  3316.     FUNCTION
  3317.         Write the specified number of bytes to the stream from the buffer.
  3318.  
  3319.     INPUTS
  3320.         file    -    the filehandle to write to. NOT a DOS FileHandle.
  3321.         buffer    -    the buffer to write from.
  3322.         size    -    the number of bytes to write. The buffer will be
  3323.                     flushed in record I/O as soon as a record separator
  3324.                     is found. You may specify explicitly NOT to write the
  3325.                     primary separator (usually ASCII NUL).
  3326.  
  3327.     RESULTS
  3328.         the number of bytes written, or -1 in case of a failure.
  3329.  
  3330.     NOTES
  3331.         the buffer size is passed in d1.
  3332.  
  3333.     SEE ALSO
  3334.         VNCFOpen(), VNCFRead(), Write(), vnc/io.h
  3335. vnc.library/VNCOneRequester                        vnc.library/VNCOneRequester
  3336.  
  3337.     NAME
  3338.         VNCOneRequester - display a failure requester
  3339.  
  3340.     SYNOPSIS
  3341.         VNCOneRequester ( body )
  3342.                           a0
  3343.  
  3344.         VOID VNCOneRequester ( char * )
  3345.  
  3346.     FUNCTION
  3347.         Format the given prompt and build a requester with the supplied
  3348.         body with a (localized, though) "Cancel" button.
  3349.  
  3350.     INPUTS
  3351.         body    -    the body text of the requester. 
  3352.  
  3353.     RESULTS
  3354.         
  3355.     NOTES
  3356.         This function uses the old "auto" requesters of intuition for
  3357.         compatibility to Os 1.2/1.3. However, it is likely that the
  3358.         backwards compatibility will be removed in ViNCEd version 3.70.
  3359.  
  3360.         Don't expect too much from this function, especially in a Os 1.3
  3361.         environment. It will *try* to format and center the text and will
  3362.         break the text in several lines, enlarging the requester if
  3363.         required, but not much more. If the text is too long, its too
  3364.         long. Especially, do NOT pass in body texts longer than eight 
  3365.         lines.
  3366.  
  3367.         The lines in the body text may be separated with LF, or LF and CR.
  3368.  
  3369.     SEE ALSO
  3370.         VNCTwoRequester(), AutoRequest()
  3371. vnc.library/VNCTwoRequester                        vnc.library/VNCTwoRequester
  3372.  
  3373.     NAME
  3374.         VNCTwoRequester - display an O.K./Cancel requester
  3375.  
  3376.     SYNOPSIS
  3377.         ok = VNCTwoRequester ( body )
  3378.                                a0
  3379.  
  3380.         BOOL VNCTwoRequester ( char * )
  3381.  
  3382.     FUNCTION
  3383.         Format the given prompt and build a requester with the supplied
  3384.         body with two buttons, "O.K." and "Cancel", which will be localized.
  3385.  
  3386.     INPUTS
  3387.         body    -    the body text of the requester. 
  3388.  
  3389.     RESULTS
  3390.         non-NULL if the user selected "O.K.", FALSE otherwise.
  3391.         
  3392.     NOTES
  3393.         This function uses the old "auto" requesters of intuition for
  3394.         compatibility to Os 1.2/1.3. However, it is likely that the
  3395.         backwards compatibility will be removed in ViNCEd version 3.70.
  3396.  
  3397.         Don't expect too much from this function, especially in a Os 1.3
  3398.         environment. It will *try* to format and center the text and will
  3399.         break the text in several lines, enlarging the requester if
  3400.         required, but not much more. If the text is too long, its too
  3401.         long. Especially, do NOT pass in body texts longer than eight 
  3402.         lines.
  3403.  
  3404.         The lines in the body text may be separated with LF, or LF and CR.
  3405.  
  3406.     SEE ALSO
  3407.         VNCOneRequester(), AutoRequest()
  3408. vnc.library/GetHistory                                vnc.library/GetHistory
  3409.  
  3410.     NAME
  3411.         GetHistory - load the command history from a file
  3412.  
  3413.     SYNOPSIS
  3414.         error = GetHistory ( file , flags )
  3415.         d0                     a0        d0
  3416.  
  3417.         LONG GetHistory ( char * , ULONG )
  3418.  
  3419.     FUNCTION
  3420.         Load the command history from a file.
  3421.  
  3422.     INPUTS
  3423.         file     -    the name of the file to load the buffer from.
  3424.         flags    -    currently only one bit is defined:
  3425.         
  3426.         #define BMNF_CHECKBREAK_BIT     0L
  3427.         #define BMNF_CHECKBREAK_MASK    (1L<<0)
  3428.  
  3429.         If this bit is defined, the function will check for a ^C signal
  3430.         bit and abort loading if the bit is received. 
  3431.  
  3432.     RESULTS
  3433.         Zero for success or a failure code:
  3434.         
  3435.         #define BMNC_BREAKABORT        1L        /* canceled by ^C */
  3436.         #define BMNC_OPENFAILED        2L        /* file open failed */
  3437.         #define BMNC_READING        3L        /* read failed */
  3438.         #define BMNC_WRITING        4L        /* writing failed */
  3439.         #define BMNC_MEMORY            5L        /* out of memory */
  3440.  
  3441.         In case of an I/O error, more detailed failure codes can be
  3442.         obtained by IoErr().        
  3443.     
  3444.     SEE ALSO
  3445.         PutHistory(), vnc/bufferio.h
  3446. vnc.library/PutHistory                                vnc.library/PutHistory
  3447.  
  3448.     NAME
  3449.         PutHistory - save the command history to a file
  3450.  
  3451.     SYNOPSIS
  3452.         error = PutHistory ( file , flags )
  3453.         d0                     a0        d0
  3454.  
  3455.         LONG PutHistory ( char * , ULONG )
  3456.  
  3457.     FUNCTION
  3458.         Save the current command history to a file.
  3459.  
  3460.     INPUTS
  3461.         file     -    the name of the file to save the buffer to.
  3462.         flags    -    currently only one bit is defined:
  3463.         
  3464.         #define BMNF_CHECKBREAK_BIT     0L
  3465.         #define BMNF_CHECKBREAK_MASK    (1L<<0)
  3466.  
  3467.         If this bit is defined, the function will check for a ^C signal
  3468.         bit and abort loading if the bit is received. 
  3469.  
  3470.     RESULTS
  3471.         Zero for success or a failure code:
  3472.         
  3473.         #define BMNC_BREAKABORT        1L        /* canceled by ^C */
  3474.         #define BMNC_OPENFAILED        2L        /* file open failed */
  3475.         #define BMNC_READING        3L        /* read failed */
  3476.         #define BMNC_WRITING        4L        /* writing failed */
  3477.         #define BMNC_MEMORY            5L        /* out of memory */
  3478.  
  3479.         In case of an I/O error, more detailed failure codes can be
  3480.         obtained by IoErr().        
  3481.     
  3482.     SEE ALSO
  3483.         GetHistory(), vnc/bufferio.h
  3484. vnc.library/GetScreen                                vnc.library/GetScreen
  3485.  
  3486.     NAME
  3487.         GetScreen - load the display buffer from a file
  3488.  
  3489.     SYNOPSIS
  3490.         error = GetScreen ( file , flags )
  3491.         d0                    a0        d0
  3492.  
  3493.         LONG GetHistory ( char * , ULONG )
  3494.  
  3495.     FUNCTION
  3496.         Load the display buffer from a file, and place the cursor at the    
  3497.         end of the loaded data.
  3498.  
  3499.     INPUTS
  3500.         file     -    the name of the file to load the buffer from.
  3501.         flags    -    currently only one bit is defined:
  3502.         
  3503.         #define BMNF_CHECKBREAK_BIT     0L
  3504.         #define BMNF_CHECKBREAK_MASK    (1L<<0)
  3505.  
  3506.         If this bit is defined, the function will check for a ^C signal
  3507.         bit and abort loading if the bit is received. 
  3508.  
  3509.     RESULTS
  3510.         Zero for success or a failure code:
  3511.         
  3512.         #define BMNC_BREAKABORT        1L        /* canceled by ^C */
  3513.         #define BMNC_OPENFAILED        2L        /* file open failed */
  3514.         #define BMNC_READING        3L        /* read failed */
  3515.         #define BMNC_WRITING        4L        /* writing failed */
  3516.         #define BMNC_MEMORY            5L        /* out of memory */
  3517.  
  3518.         In case of an I/O error, more detailed failure codes can be
  3519.         obtained by IoErr().        
  3520.     
  3521.     SEE ALSO
  3522.         PutScreen(), vnc/bufferio.h
  3523. vnc.library/PutScreen                                vnc.library/PutScreen
  3524.  
  3525.     NAME
  3526.         PutScreen - save the display buffer to a file
  3527.  
  3528.     SYNOPSIS
  3529.         error = PutScreen ( file , flags )
  3530.         d0                    a0       d0
  3531.  
  3532.         LONG PutScreen ( char * , ULONG )
  3533.  
  3534.     FUNCTION
  3535.         Save the display buffer to a file.
  3536.  
  3537.     INPUTS
  3538.         file     -    the name of the file to save the buffer to.
  3539.         flags    -    currently only one bit is defined:
  3540.         
  3541.         #define BMNF_CHECKBREAK_BIT     0L
  3542.         #define BMNF_CHECKBREAK_MASK    (1L<<0)
  3543.  
  3544.         If this bit is defined, the function will check for a ^C signal
  3545.         bit and abort loading if the bit is received. 
  3546.  
  3547.     RESULTS
  3548.         Zero for success or a failure code:
  3549.         
  3550.         #define BMNC_BREAKABORT        1L        /* canceled by ^C */
  3551.         #define BMNC_OPENFAILED        2L        /* file open failed */
  3552.         #define BMNC_READING        3L        /* read failed */
  3553.         #define BMNC_WRITING        4L        /* writing failed */
  3554.         #define BMNC_MEMORY            5L        /* out of memory */
  3555.  
  3556.         In case of an I/O error, more detailed failure codes can be
  3557.         obtained by IoErr().        
  3558.     
  3559.     SEE ALSO
  3560.         GetScreen(), vnc/bufferio.h
  3561. vnc.library/NameOfFunction                            vnc.library/NameOfFunction
  3562.  
  3563.     NAME
  3564.         NameOfFunction - return the name of a keyboard function
  3565.  
  3566.     SYNOPSIS
  3567.         name = NameOfFunction ( id )
  3568.         d0                        d0
  3569.  
  3570.         char * NameOfFunction ( UWORD )
  3571.  
  3572.     FUNCTION
  3573.         Return the name of a keyboard function if the ID is given.
  3574.  
  3575.     INPUTS
  3576.         id    -    The ID of the keyboard function to find the name of.
  3577.  
  3578.     RESULTS
  3579.         the name of the keyboard function or NULL if the ID is unknown.
  3580.  
  3581.     NOTES
  3582.         This function does not copy the string in question, hence it     
  3583.         returns a pointer to a string in the DATA segment of the library.
  3584.         Do not modify this string!
  3585.  
  3586.         This function IS NEVER localized. It returns the english names
  3587.         of the keyboard functions. You've to provide your own localization
  3588.         database for this purpose.
  3589.  
  3590.     SEE ALSO
  3591.         NameOfKey()
  3592. vnc.library/NameOfKey                                    vnc.library/NameOfKey
  3593.  
  3594.     NAME
  3595.         NameOfKey - return the name of a special keyboard key
  3596.  
  3597.     SYNOPSIS
  3598.         name = NameOfKey ( code )
  3599.         d0                   d0
  3600.  
  3601.         char * NameOfKey ( UWORD )
  3602.  
  3603.     FUNCTION
  3604.         Return the name of a keyboard key if the raw key code is given.
  3605.         However, this function returns only the names of "special" keyboard
  3606.         keys like RETURN or SHIFT, or the keys on the numeric key pad.
  3607.  
  3608.     INPUTS
  3609.         code    -    The raw key code of the key to find the name of.
  3610.  
  3611.     RESULTS
  3612.         the name of the key or NULL if the raw key code is unknown.
  3613.  
  3614.     NOTES
  3615.         This function does not copy the string in question, hence it     
  3616.         returns a pointer to a string in the DATA segment of the library.
  3617.         Do not modify this string!
  3618.  
  3619.         This function IS NEVER localized. It returns the english names
  3620.         of the keyboard keys. Furthermore, it returns only the names of
  3621.         those keyboard keys that usually do not depend on the localization,
  3622.         i.e. "special keys" that return either control sequences or
  3623.         non-printable characters.
  3624.  
  3625.     SEE ALSO
  3626.         NameOfFunction()
  3627. vnc.library/InstallGlobalHooks                    vnc.library/InstallGlobalHooks
  3628.  
  3629.     NAME
  3630.         InstallGlobalHooks - patchable Init vector
  3631.  
  3632.     SYNOPSIS
  3633.         InstallGlobalHooks ( cn )
  3634.                              a5
  3635.  
  3636.         VOID InstallGlobalHook ( struct ViNCWindow * )
  3637.  
  3638.     FUNCTION
  3639.         This function does, by itself, nothing. It is, however, called by
  3640.         ViNCEd as soon as a new ViNCWindow structure has been build and
  3641.         can therefore be used to patch it by an external program if
  3642.         desired.
  3643.  
  3644.     INPUTS
  3645.         cn    -    struct ViNCWindow, pointer to the ViNCEd main structure. It
  3646.                 will be locked if this routine is called by the handler
  3647.                 process.
  3648.  
  3649.     RESULTS
  3650.         nope.
  3651.  
  3652.     SEE ALSO
  3653.  
  3654.     BUGS
  3655.         nope.
  3656.  
  3657.     SEE ALSO
  3658.         vnc/Window.h
  3659.